- entityDefinitions:
  - IDR_Conditional_Select_Attribute_Method__returns__Attribute: '{b2b9d9cc-c4dd-491b-853e-e3669ea4e66a}'
  - IDR_Attribute__returned_by__Conditional_Select_Attribute_Method: '{e3e734ce-953b-49b8-b50d-b1826b519053}'
  - IDR_Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case: '{49396bd0-b5a9-4384-99f4-2126d80b3b66}'
  - IDR_Conditional_Select_Attribute_Case__for__Conditional_Select_Attribute_Method: '{38e2816e-ccb4-4e89-86ab-4981f5c2d7ac}'

- library: '&IDL_MochaBaseSystem;'
  instances:
  - class: '&IDC_ConditionalSelectAttributeMethod;'
    index: 13038
    name: SAC - Conditional Select Attribute Method
    customTagName: 'conditionalSelectAttributeMethod'
    instancesLabeledByRAMB: '&IDMB_Method__get__Fully_Qualified_Name_SAC;'
    superclasses:
    - instance: '&IDC_Method;'
    - instance: '&IDC_ExecutableReturningAttribute;'
    - instance: '&IDC_MethodWithStaticAndParms;'
    defaultTask: '&IDI_Task_ViewConditionalSelectAttributeMethod;'
    relatedTasks:
    - instance: '&IDI_Task_ViewConditionalSelectAttributeMethod;'
    - instance: '&IDI_Task_EditConditionalSelectAttributeMethod;'
    attributes:
    - instance: '&IDA_Verb;'
      customTagName: 'verb'
    - instance: '&IDA_Name;'
      customTagName: 'name'
    - instance: '&IDA_Static;'
      customTagName: 'static'
    - instance: '&IDA_Final;'
      customTagName: 'final'
    relationships:
    - instance: '&IDR_Method__for__Class;'
      customTagName: 'forClassId'
    - instance: '&IDR_Metadata_With_Access_Modifier__has__Access_Modifier;'
      customTagName: 'accessModifierId'
    - instance: '&IDR_Conditional_Select_Attribute_Method__returns__Attribute;'
      customTagName: 'returnsAttributeId'
    - instance: '&IDR_Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case;'
      customTagName: 'cases'
      customTagNameCreatesInstanceOf: '&IDC_ConditionalSelectAttributeCase;'
      # let's try this, define a custom tag name local to this particular context
      # otherwise, we would have to have e.g. 'conditionalSelectAttributeCase' and 'conditionalSelectInstanceSetCase' because they're different..
      instanceCustomTagName: 'case'
    - instance: '&IDR_Instance__for__Module;'
      customTagName: 'moduleId'

  - relationship: '&IDR_Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case;'
    index: 37627
    sourceClassId: '&IDC_ConditionalSelectAttributeMethod;'
    type: 'has'
    destinationClassId: '&IDC_ConditionalSelectAttributeCase;'
    siblingRelationshipId: '&IDR_Conditional_Select_Attribute_Case__for__Conditional_Select_Attribute_Method;'
    singular: yes

  - relationship: '&IDR_Conditional_Select_Attribute_Case__for__Conditional_Select_Attribute_Method;'
    index: 37628
    sourceClassId: '&IDC_ConditionalSelectAttributeCase;'
    type: 'for'
    destinationClassId: '&IDC_ConditionalSelectAttributeMethod;'
    siblingRelationshipId: '&IDR_Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case;'
    singular: no

  - relationship: '&IDR_Conditional_Select_Attribute_Method__returns__Attribute;'
    index: 37633
    sourceClassId: '&IDC_ConditionalSelectAttributeMethod;'
    type: 'returns'
    destinationClassId: '&IDC_Attribute;'
    siblingRelationshipId: '&IDR_Attribute__returned_by__Conditional_Select_Attribute_Method;'
    singular: yes

  - relationship: '&IDR_Attribute__returned_by__Conditional_Select_Attribute_Method;'
    index: 37634
    sourceClassId: '&IDC_Attribute;'
    type: 'returned by'
    destinationClassId: '&IDC_ConditionalSelectAttributeMethod;'
    siblingRelationshipId: '&IDR_Conditional_Select_Attribute_Method__returns__Attribute;'
    singular: no

  # - conditionalSelectAttributeMethod: '{c047715b-2547-47be-9437-9af40f1d6fdf}'
  #   forClassId: '&IDC_ConditionalSelectAttributeMethod;'
  #   verb: 'get'
  #   name: 'example item from choices depending on arbitrary magic'
  #   cases:
  #   - globalIdentifier: '{ec04570c-c5ac-4146-ba4a-a9a496465067}'
  #     #conditionGroup: '{23705abe-d562-4335-b78b-1ba06d886866}'
  #     trueConditions: '&IDMB_Common_Boolean__get__Arbitrary_Magic_Toggle;'
  #     falseConditions:
  #     useAnyCondition: no
  #     # default implementation: `Common Numeric@get 42 (BA)*P*S[ramb]`
  #     returnsAttributeId: '&IDMB_Common_Numeric__get__42;'
      
  #   - globalIdentifier: '{3e149124-cc01-4427-ae19-167a23e8b647}' # default case
  #     #conditionGroup: '{b5585cf6-0483-437f-9dc9-fb804f5b7db2}'
  #     trueConditions:
  #     falseConditions:
  #     useAnyCondition: no
  #     returnsAttributeId: '&IDA_DateAndTime;'