Skip to main content

DSL Schema

The MasLazu.AspNet DSL is a Markdown-based format that uses Mermaid ER diagrams for visual modeling and simple tables/pseudocode for details.

Structure

A module definition DSL file consists of several sections:

  1. Module Config: YAML block with module and namespace.
  2. Entities: Mermaid erDiagram block defining entities and relationships.
  3. Constraints: Detailed property rules like Max Length, Required, Unique, and Default values.
  4. Indexes: Database index definitions.
  5. Contracts: Custom DTOs, Requests, and Responses.
  6. Services: Business logic defined in Pseudocode.
  7. Adapters: Inbound protocol handlers (HTTP, gRPC, Event Consumers, GraphQL).
  8. Events: Domain event definitions.
  9. Authorization: Access control rules per entity.

Example

Pseudocode Logic

Services use a simple pseudocode that AI translates to C#:

DeactivateAsync(productId: Guid) -> void
product = Products.find(productId) ?? throw NotFound
if product.IsActive:
product.IsActive = false
product.save()
publish ProductDeactivatedEvent(productId)

Reference

For the full schema specification, refer to the .ai/dsl/schema.md file in the repository.