Syntax
A MethodSketch consists of many StaticAspect and UseCase blocks, if there is only one StaticAspect naming the block is optional
StaticAspect
Define an Architecture
Define an named Architecture aspect
Defining Components
Client, Manager, Engine, Access, Resource and Utility are the only valid architecture Components as long as they are seperated with whitespace any token ending in a component name will be recognised.
Resource Components
UseCase
Define a use case
Synchronous call
Asynchronous call
Markdown Annotation

CallDetail
Synchronous OperationName
Asynchronous OperationName
Facet and OperationName
Context, Facet and OperationName
Request Type
Request Type and parameter name
Context RequestType and parameter name
ResponseType
Context.ResponseType
Generic Wrapper Context.ResponseType
Dto
Name only
This will match the dto name across all components that use it
Inheritence
Context
Facet and Name
This will specialise and only match a specific facet
Facet context and inheritence
Abstract
If you are defining a DTO that is referenced as the type for a property within another DTO, you can mark it abstract
Activity
PlantUML activtity diagram syntax is passed through without processing
Identifiers & Values
Define value types including for Identifiers. When generated they will be created as partial structs. Values are out of scope of the enforcer, the generator will ensure they exist. The definition of the values is an implementation detail. They are include to allow building the projects when the types are referenced from an enforced DTO.
Identifer
Identifiers are attributed with StronglyTypedId by default.
Identifiers will be generated in the namespace Common.Identifier
Value
Values are attributed with Vogen by default
Values will be generated in the namespace Common.Value
Section
A section does not affect your architecture. It is used for code folding and navigation in the editor.