--- #definitions for YAML
- entityDefinitions:
  - IDC_Route: '{6c589422-3f1e-4402-afc7-27b6956aa588}'
  - IDC_RouteTable: '{76e5ce90-5f64-4355-a0ee-f659cf615a63}'

  - IDA_RouteURL: '{304d9fb0-a5fc-4503-b6e5-96842b856bb1}'

  - IDR_Route_Table__has__Route: '{551efe23-f97c-4e11-b5cc-e3c99117a9cc}'
  - IDR_Route__for__Route_Table: '{1d38259e-b4f4-4bf9-a7ab-1cb09561bf3b}'

  - IDR_Tenant__has__Route_Table: '{1af6c245-2faa-4f31-9368-4148b3051c04}'
  - IDR_Route_Table__for__Tenant: '{e55755c3-3574-41f5-b8e7-ed634050fe67}'

  - IDR_Route__processed_by__Control_Transaction_Method: '{6b9ad17e-69a2-42bf-8197-5ab266c76cd1}'
  - IDR_Control_Transaction_Method__processes__Route: '{d1c3aa8a-0928-4c46-9aba-9a368b3dea5a}'
  
- library: '&IDL_MochaWeb;'
  instances:
  - textAttribute:       '&IDA_RouteURL;'
    name: 'Route URL'
    index: 438

    # none of the 'class' definitions are getting loaded
    # because the 'class' customTagName is defined in net.alcetech.Mocha.System.mcl
    # and the yaml2mcl compiler doesn't see it
    # ... I believe we do actually store the YAML source in the MCL, at least during the linking process
    # ... so we should be able to figure this one out!
    # ! this is stopping work on the .NET Web server, as it requires net.alcetech.Mocha.Web.mcl to work
    # ? this would also explain why our Instance IDs in Mocha.Web go bonkers

  - class: '&IDC_Route;'
    name: Route
    index: 434
    customTagName: 'route'
    attributes:
    - instance: '&IDA_Name;'
      customTagName: 'name'
    - instance: '&IDA_RouteURL;'
      customTagName: 'url'

  - class: '&IDC_RouteTable;'
    name: Route Table
    index: 439
    customTagName: 'routeTable'
    attributes:
    - instance: '&IDA_Name;'
      customTagName: 'name'
    relationships:
    - instance: '&IDR_Route_Table__has__Route;'
      customTagName: 'routes'

  - relationship: '&IDR_Route_Table__has__Route;'
    sourceClassId: '&IDC_RouteTable;'
    type: 'has'
    destinationClassId: '&IDC_Route;'
    siblingRelationshipId: '&IDR_Route__for__Route_Table;'
    singular: no

  - relationship: '&IDR_Route__for__Route_Table;'
    sourceClassId: '&IDC_Route;'
    type: 'for'
    destinationClassId: '&IDC_RouteTable;'
    siblingRelationshipId: '&IDR_Route_Table__has__Route;'
    singular: no

  - relationship: '&IDR_Tenant__has__Route_Table;'
    sourceClassId: '&IDC_Tenant;'
    type: 'has'
    destinationClassId: '&IDC_RouteTable;'
    siblingRelationshipId: '&IDR_Route_Table__for__Tenant;'
    singular: yes

  - relationship: '&IDR_Route_Table__for__Tenant;'
    sourceClassId: '&IDC_RouteTable;'
    type: 'for'
    destinationClassId: '&IDC_Tenant;'
    siblingRelationshipId: '&IDR_Tenant__has__Route_Table;'
    singular: no

  - relationship: '&IDR_Route__processed_by__Control_Transaction_Method;'
    sourceClassId: '&IDC_Route;'
    type: 'processed by'
    destinationClassId: '&IDC_ControlTransactionMethod;'
    siblingRelationshipId: '&IDR_Control_Transaction_Method__processes__Route;'
    singular: yes

  - relationship: '&IDR_Control_Transaction_Method__processes__Route;'
    sourceClassId: '&IDC_ControlTransactionMethod;'
    type: 'processes'
    destinationClassId: '&IDC_Route;'
    siblingRelationshipId: '&IDR_Route__processed_by__Control_Transaction_Method;'
    singular: no

  - routeTable: '{641ea97b-a1c2-4005-9bda-c0111a254365}'
    routes:
    - instance: '{1184d102-0710-4632-bf64-6362b9485a0f}'
    - instance: '{88de14b6-53ca-4394-8500-bd4120499875}'

  - route: '{1184d102-0710-4632-bf64-6362b9485a0f}'
    name: MADI Authentication Gateway Login
    url: 'madi/authgwy/{tenant}/login.htmld'

  - route: '{88de14b6-53ca-4394-8500-bd4120499875}'
    name: MADI Authentication Gateway Login
    url: 'madi/authgwy/{tenant}/login.htmld'
