openapi: 3.1.0
info:
  title: Countryconfig implementation requirements
  version: 2.0.0
  description: Country specific configuration server for OpenCRVS
paths:
  /events:
    get:
      tags:
        - Events
      description: Get event configurations
      responses:
        "200":
          description: 200 OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventConfig"
  "/trigger/events/{eventType}/actions/{actionType}":
    post:
      tags:
        - Events
      description: Receive a notification of an action
      parameters:
        - in: path
          name: eventType
          schema:
            type: string
          required: true
        - in: path
          name: actionType
          schema:
            type: string
            enum:
              - DELETE
              - CREATE
              - NOTIFY
              - DECLARE
              - EDIT
              - REGISTER
              - DUPLICATE_DETECTED
              - REJECT
              - MARK_AS_DUPLICATE
              - MARK_AS_NOT_DUPLICATE
              - ARCHIVE
              - PRINT_CERTIFICATE
              - REQUEST_CORRECTION
              - REJECT_CORRECTION
              - APPROVE_CORRECTION
              - READ
              - ASSIGN
              - UNASSIGN
              - CUSTOM
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                event:
                  $ref: "#/components/schemas/EventDocument"
              required:
                - event
      responses:
        "200":
          description: 200 OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocumentOutput"
components:
  schemas:
    EventDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the event.
        type:
          type: string
          description: Type of the event (e.g. birth, death, marriage).
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the event was created.
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp of the last update, excluding changes from actions.
        actions:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/ActionDocument"
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: Unique identifier of the action.
                  transactionId:
                    type: string
                    description: Unique identifier of the transaction.
                  createdByUserType:
                    type: string
                    enum:
                      - user
                      - system
                    description: Indicates whether the action was created by a human-user or by a
                      system-user.
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: Timestamp indicating when the action was created.
                  createdBy:
                    type: string
                    description: Identifier of the user who created the action.
                  createdByRole:
                    description: Role of the user who created the action.
                    type: string
                  createdBySignature:
                    description: Reference to the signature of the user who created the action.
                    anyOf:
                      - type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      - type: "null"
                  createdAtLocation:
                    description: Reference to the location of the user who created the action.
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  status:
                    type: string
                    const: Rejected
                  originalActionId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                    description: Reference to the original action asynchronously accepted or
                      rejected by a third-party integration.
                  type:
                    type: string
                    enum:
                      - NOTIFY
                      - DECLARE
                      - EDIT
                      - REGISTER
                      - REJECT
                      - ARCHIVE
                      - PRINT_CERTIFICATE
                      - REQUEST_CORRECTION
                      - APPROVE_CORRECTION
                      - REJECT_CORRECTION
                      - CUSTOM
                required:
                  - id
                  - transactionId
                  - createdByUserType
                  - createdAt
                  - createdBy
                  - status
                  - type
          description: Ordered list of actions associated with the event.
        trackingId:
          type: string
          description: System-generated tracking identifier used to look up the event.
      required:
        - id
        - type
        - createdAt
        - updatedAt
        - actions
        - trackingId
    ActionDocument:
      oneOf:
        - $ref: "#/components/schemas/CreatedAction"
        - $ref: "#/components/schemas/RejectAction"
        - $ref: "#/components/schemas/DuplicateDetectedAction"
        - $ref: "#/components/schemas/MarkNotDuplicateAction"
        - $ref: "#/components/schemas/MarkAsDuplicateAction"
        - $ref: "#/components/schemas/ArchiveAction"
        - $ref: "#/components/schemas/NotifiedAction"
        - $ref: "#/components/schemas/RegisterAction"
        - $ref: "#/components/schemas/DeclareAction"
        - $ref: "#/components/schemas/AssignedAction"
        - $ref: "#/components/schemas/RequestedCorrectionAction"
        - $ref: "#/components/schemas/ApprovedCorrectionAction"
        - $ref: "#/components/schemas/RejectedCorrectionAction"
        - $ref: "#/components/schemas/UnassignedAction"
        - $ref: "#/components/schemas/PrintCertificateAction"
        - $ref: "#/components/schemas/ReadAction"
        - $ref: "#/components/schemas/EditAction"
        - $ref: "#/components/schemas/CustomAction"
      type: object
      discriminator:
        propertyName: type
        mapping:
          CREATE: "#/components/schemas/CreatedAction"
          REJECT: "#/components/schemas/RejectAction"
          DUPLICATE_DETECTED: "#/components/schemas/DuplicateDetectedAction"
          MARK_AS_NOT_DUPLICATE: "#/components/schemas/MarkNotDuplicateAction"
          MARK_AS_DUPLICATE: "#/components/schemas/MarkAsDuplicateAction"
          ARCHIVE: "#/components/schemas/ArchiveAction"
          NOTIFY: "#/components/schemas/NotifiedAction"
          REGISTER: "#/components/schemas/RegisterAction"
          DECLARE: "#/components/schemas/DeclareAction"
          ASSIGN: "#/components/schemas/AssignedAction"
          REQUEST_CORRECTION: "#/components/schemas/RequestedCorrectionAction"
          APPROVE_CORRECTION: "#/components/schemas/ApprovedCorrectionAction"
          REJECT_CORRECTION: "#/components/schemas/RejectedCorrectionAction"
          UNASSIGN: "#/components/schemas/UnassignedAction"
          PRINT_CERTIFICATE: "#/components/schemas/PrintCertificateAction"
          READ: "#/components/schemas/ReadAction"
          EDIT: "#/components/schemas/EditAction"
          CUSTOM: "#/components/schemas/CustomAction"
    CreatedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CREATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    RejectAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
    DuplicateDetectedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DUPLICATE_DETECTED
        content:
          type: object
          properties:
            duplicates:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  trackingId:
                    type: string
                required:
                  - id
                  - trackingId
          required:
            - duplicates
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
    MarkNotDuplicateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_NOT_DUPLICATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    MarkAsDuplicateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_DUPLICATE
        content:
          type: object
          properties:
            duplicateOf:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - duplicateOf
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    ArchiveAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ARCHIVE
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
    NotifiedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: NOTIFY
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    RegisterAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REGISTER
        registrationNumber:
          description: Registration number of the event. Always present for accepted
            registrations.
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    DeclareAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DECLARE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    AssignedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ASSIGN
        assignedTo:
          type: string
          description: Identifier of the user to whom the action is assigned.
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - assignedTo
    RequestedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REQUEST_CORRECTION
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    ApprovedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: APPROVE_CORRECTION
        requestId:
          type: string
        content:
          type: object
          properties:
            immediateCorrection:
              type: boolean
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
    RejectedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT_CORRECTION
        requestId:
          type: string
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
        - content
    UnassignedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: UNASSIGN
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    PrintCertificateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: PRINT_CERTIFICATE
        content:
          anyOf:
            - type: object
              properties:
                templateId:
                  type: string
            - type: "null"
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    ReadAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: READ
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
    EditAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: EDIT
        content:
          type: object
          properties:
            comment:
              type: string
              description: Comment for the edit action.
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
    CustomAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CUSTOM
        customActionType:
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - customActionType
    EventConfig:
      type: object
      properties:
        id:
          type: string
          description: Machine-readable identifier of the event (e.g. "birth", "death").
        dateOfEvent:
          description: Reference to the field capturing the date of the event (e.g. date
            of birth). Defaults to the event creation date if unspecified.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: object
              properties:
                $$event:
                  type: string
                  enum:
                    - createdAt
                    - updatedAt
                    - legalStatuses.DECLARED.createdAt
                    - legalStatuses.DECLARED.acceptedAt
                    - legalStatuses.REGISTERED.createdAt
                    - legalStatuses.REGISTERED.acceptedAt
              required:
                - $$event
              additionalProperties: false
              description: Reference to a field defined in the event metadata, using the field
                id.
        placeOfEvent:
          description: Reference to the field capturing the place of the event (e.g. place
            of birth). Defaults to the meta.createdAtLocation if unspecified.
          type: object
          properties:
            $$field:
              type: string
              description: Id of the field to reference
            $$subfield:
              default: []
              description: 'If the FieldValue is an object, subfield can be used to refer to
                e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
              type: array
              items:
                type: string
            $$code:
              description: Serialised client-side function body. When present the expression
                is evaluated rather than dereferenced.
              type: string
          required:
            - $$field
            - $$subfield
          additionalProperties: false
        title:
          description: Title template for the singular event, supporting variables (e.g.
            "{applicant.name.firstname} {applicant.name.surname}").
          $ref: "#/components/schemas/TranslationConfig"
        fallbackTitle:
          description: Fallback title shown when the main title resolves to an empty value.
          $ref: "#/components/schemas/TranslationConfig"
        summary:
          description: Summary information displayed in the event overview.
          $ref: "#/components/schemas/SummaryConfig"
        label:
          description: Human-readable label for the event type.
          $ref: "#/components/schemas/TranslationConfig"
        actions:
          type: array
          items:
            $ref: "#/components/schemas/ActionConfig"
          description: Configuration of core and custom actions associated with the event.
        actionOrder:
          description: Order of actions in the action menu. Use either the action type for
            core actions or the customActionType for custom actions.
          type: array
          items:
            type: string
        declaration:
          description: Configuration of the form used to gather event data.
          $ref: "#/components/schemas/DeclarationFormConfig"
        advancedSearch:
          default: []
          description: Configuration of fields available in the advanced search feature.
          type: array
          items:
            $ref: "#/components/schemas/AdvancedSearchConfig"
        flags:
          default: []
          description: Configuration of custom flags associated with the actions of this
            event type.
          type: array
          items:
            $ref: "#/components/schemas/FlagConfig"
        analytics:
          default: true
          description: Indicates whether the records of this event type are included in
            analytics
          type: boolean
      required:
        - id
        - title
        - summary
        - label
        - actions
        - declaration
        - advancedSearch
        - flags
        - analytics
      additionalProperties: false
      description: Configuration defining an event type registered in OpenCRVS (for
        example birth or death).
    TranslationConfig:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the translation referred in translation CSV files
        defaultMessage:
          type: string
          description: Default translation message
        description:
          type: string
          description: Describe the translation for a translator to be able to identify it.
      required:
        - id
        - defaultMessage
        - description
      additionalProperties: false
      description: Translation configuration
    Conditional:
      description: JSON schema conditional configuration
    SummaryConfig:
      type: object
      properties:
        fields:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  emptyValueMessage:
                    description: Default message displayed when the field value is empty.
                    $ref: "#/components/schemas/TranslationConfig"
                  conditionals:
                    default: []
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          const: SHOW
                        conditional:
                          $ref: "#/components/schemas/Conditional"
                      required:
                        - type
                        - conditional
                      additionalProperties: false
                      description: If 'SHOW' conditional is defined, the component is shown to the
                        user only if the condition is met
                  id:
                    type: string
                    description: Identifier of the summary field.
                  value:
                    description: Field value template supporting variables from configuration and
                      EventMetadata (e.g. "{informant.phoneNo}
                      {informant.email}").
                    $ref: "#/components/schemas/TranslationConfig"
                  label:
                    $ref: "#/components/schemas/TranslationConfig"
                required:
                  - id
                  - value
                  - label
                additionalProperties: false
                description: Custom field defined for the summary view.
              - type: object
                properties:
                  emptyValueMessage:
                    description: Default message displayed when the field value is empty.
                    $ref: "#/components/schemas/TranslationConfig"
                  conditionals:
                    default: []
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          const: SHOW
                        conditional:
                          $ref: "#/components/schemas/Conditional"
                      required:
                        - type
                        - conditional
                      additionalProperties: false
                      description: If 'SHOW' conditional is defined, the component is shown to the
                        user only if the condition is met
                  fieldId:
                    type: string
                  label:
                    description: Overrides the default label from the referenced field when
                      provided.
                    $ref: "#/components/schemas/TranslationConfig"
                required:
                  - fieldId
                additionalProperties: false
                description: Field referencing existing event data by field ID.
          description: Fields displayed in the event summary view.
      required:
        - fields
      additionalProperties: false
      description: Configuration of the event overview page. Defines which declaration
        fields appear in the record summary, optionally with custom labels,
        empty-value messages, and templated values.
    ActionConfig:
      oneOf:
        - $ref: "#/components/schemas/ReadActionConfig"
        - $ref: "#/components/schemas/DeclareActionConfig"
        - $ref: "#/components/schemas/RejectActionConfig"
        - $ref: "#/components/schemas/RegisterActionConfig"
        - $ref: "#/components/schemas/PrintCertificateActionConfig"
        - $ref: "#/components/schemas/RequestCorrectionActionConfig"
        - $ref: "#/components/schemas/EditActionConfig"
        - $ref: "#/components/schemas/ArchiveActionConfig"
        - $ref: "#/components/schemas/CustomActionConfig"
      description: Configuration of an action available for an event. Data collected
        depends on the action type and is accessible through the annotation
        property in ActionDocument.
      type: object
      discriminator:
        propertyName: type
        mapping:
          READ: "#/components/schemas/ReadActionConfig"
          DECLARE: "#/components/schemas/DeclareActionConfig"
          REJECT: "#/components/schemas/RejectActionConfig"
          REGISTER: "#/components/schemas/RegisterActionConfig"
          PRINT_CERTIFICATE: "#/components/schemas/PrintCertificateActionConfig"
          REQUEST_CORRECTION: "#/components/schemas/RequestCorrectionActionConfig"
          EDIT: "#/components/schemas/EditActionConfig"
          ARCHIVE: "#/components/schemas/ArchiveActionConfig"
          CUSTOM: "#/components/schemas/CustomActionConfig"
    ReadActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Read-action can not be disabled or hidden with conditionals.
          not: {}
        type:
          type: string
          const: READ
        review:
          type: object
          properties:
            title:
              description: Title of the review page
              $ref: "#/components/schemas/TranslationConfig"
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields displayed on the review page for annotations.
          required:
            - title
            - fields
          additionalProperties: false
          description: Configuration of the review page for read-only view.
      required:
        - label
        - flags
        - type
        - review
      additionalProperties: false
      description: Configuration for the read action — defines the record-tab content
        displayed on the event overview page.
    ActionFlagConfig:
      type: object
      properties:
        id:
          anyOf:
            - anyOf:
                - type: string
                  pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                - type: string
                  enum:
                    - incomplete
                    - rejected
                    - correction-requested
                    - potential-duplicate
                    - edit-in-progress
            - type: string
              description: Custom flag identifier defined by the country config.
        operation:
          type: string
          enum:
            - add
            - remove
          description: Operation to perform on the flag.
        conditional:
          description: When conditional is met, the operation is performed on the flag. If
            not provided, the operation is performed unconditionally.
          $ref: "#/components/schemas/Conditional"
      required:
        - id
        - operation
      additionalProperties: false
      description: Add or remove operation applied to a flag when the parent action is
        accepted. Optionally gated by a conditional.
    FieldConfig:
      oneOf:
        - $ref: "#/components/schemas/FieldGroup"
        - $ref: "#/components/schemas/Address"
        - $ref: "#/components/schemas/TextField"
        - $ref: "#/components/schemas/NumberField"
        - $ref: "#/components/schemas/NumberWithUnitField"
        - $ref: "#/components/schemas/TextAreaField"
        - $ref: "#/components/schemas/AgeField"
        - $ref: "#/components/schemas/DateField"
        - $ref: "#/components/schemas/TimeField"
        - $ref: "#/components/schemas/DateRangeField"
        - $ref: "#/components/schemas/SelectDateRangeField"
        - $ref: "#/components/schemas/ImageViewField"
        - $ref: "#/components/schemas/Paragraph"
        - $ref: "#/components/schemas/Heading"
        - $ref: "#/components/schemas/RadioGroup"
        - $ref: "#/components/schemas/BulletList"
        - $ref: "#/components/schemas/PageHeader"
        - $ref: "#/components/schemas/Select"
        - $ref: "#/components/schemas/NameField"
        - $ref: "#/components/schemas/PhoneField"
        - $ref: "#/components/schemas/IdField"
        - $ref: "#/components/schemas/Checkbox"
        - $ref: "#/components/schemas/File"
        - $ref: "#/components/schemas/Country"
        - $ref: "#/components/schemas/AdministrativeAreaField"
        - $ref: "#/components/schemas/Divider"
        - $ref: "#/components/schemas/LocationInput"
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier of the field.
            label:
              description: Human-readable label of the field.
              $ref: "#/components/schemas/TranslationConfig"
            parent:
              description: Reference to the parent field or fields. When a parent field
                changes, this field is reset.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                    $$code:
                      description: Serialised client-side function body. When present the expression
                        is evaluated rather than dereferenced.
                      type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field value, with an optional client-side
                    computation applied.
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
            required:
              description: Indicates whether the field is mandatory.
              default: false
              anyOf:
                - type: boolean
                - type: object
                  properties:
                    message:
                      description: Custom required validation message
                      $ref: "#/components/schemas/TranslationConfig"
                  required:
                    - message
                  additionalProperties: false
            conditionals:
              description: Conditions determining when the field is shown or enabled. By
                default, the field is always shown and enabled.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/FieldConditional"
            secured:
              description: Indicates whether the field is secured. Secured fields are not
                indexed for search and are only visible when explicitly
                assigned.
              default: false
              type: boolean
            placeholder:
              $ref: "#/components/schemas/TranslationConfig"
            validation:
              description: Additional validation rules applied to the field.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/ValidationConfig"
            helperText:
              $ref: "#/components/schemas/TranslationConfig"
            hideLabel:
              default: false
              type: boolean
            uncorrectable:
              description: Indicates whether the field can be modified during record
                correction.
              default: false
              type: boolean
            value:
              description: Reference to the source field or fields. When a value is defined,
                it is copied from the parent field when changed. If multiple
                references are provided, the first truthy value is used. A
                FieldReference with $$code computes the value via a custom
                client-side function.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                    $$code:
                      description: Serialised client-side function body. When present the expression
                        is evaluated rather than dereferenced.
                      type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field value, with an optional client-side
                    computation applied.
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
            analytics:
              description: Indicates whether the field is included in analytics. When enabled,
                its value becomes available in the analytics dashboard.
              default: false
              type: boolean
            type:
              type: string
              const: FACILITY
            defaultValue:
              anyOf:
                - type: string
                  minLength: 1
                - type: object
                  properties:
                    $$code:
                      type: string
                      description: Serialised client-side function body. Receives (undefined, context)
                        where context includes $now, $online, and system
                        variables.
                  required:
                    - $$code
                  additionalProperties: false
                  description: A context-only computation used as a field default value.
            configuration:
              type: object
              properties:
                allowedLocations:
                  description: Limits which location options are selectable depending on user
                    jurisdiction and location.
                  type: object
                  properties:
                    $jurisdiction:
                      anyOf:
                        - type: string
                          enum:
                            - administrativeArea
                            - location
                            - all
                          description: Filters based on user jurisdiction relative to their office
                            location in hierarchy.
                        - type: object
                          properties:
                            $scope:
                              type: string
                              enum:
                                - organisation.read-locations
                                - user.read
                                - user.create
                                - user.edit
                                - user.search
                                - record.search
                                - record.create
                                - record.read
                                - record.declare
                                - record.notify
                                - record.edit
                                - record.reject
                                - record.archive
                                - record.review-duplicates
                                - record.register
                                - record.print-certified-copies
                                - record.request-correction
                                - record.correct
                                - record.unassign-others
                                - record.custom-action
                                - bypassratelimit
                                - record.reindex
                                - user.data-seeding
                                - integration.create
                                - record.import
                                - config.update-all
                                - attachment.upload
                                - profile.electronic-signature
                                - user.read-only-my-audit
                                - performance.read
                                - performance.read-dashboards
                                - performance.vital-statistics-export
                                - record.confirm-registration
                                - record.reject-registration
                                - workqueue
                                - dashboard.view
                            $option:
                              type: string
                              enum:
                                - event
                                - placeOfEvent
                                - declaredIn
                                - declaredBy
                                - registeredIn
                                - registeredBy
                                - accessLevel
                                - role
                                - ids
                          required:
                            - $scope
                            - $option
                          additionalProperties: false
                  required:
                    - $jurisdiction
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - label
            - type
          additionalProperties: false
          description: Input field for a facility
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier of the field.
            label:
              description: Human-readable label of the field.
              $ref: "#/components/schemas/TranslationConfig"
            parent:
              description: Reference to the parent field or fields. When a parent field
                changes, this field is reset.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                    $$code:
                      description: Serialised client-side function body. When present the expression
                        is evaluated rather than dereferenced.
                      type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field value, with an optional client-side
                    computation applied.
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
            required:
              description: Indicates whether the field is mandatory.
              default: false
              anyOf:
                - type: boolean
                - type: object
                  properties:
                    message:
                      description: Custom required validation message
                      $ref: "#/components/schemas/TranslationConfig"
                  required:
                    - message
                  additionalProperties: false
            conditionals:
              description: Conditions determining when the field is shown or enabled. By
                default, the field is always shown and enabled.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/FieldConditional"
            secured:
              description: Indicates whether the field is secured. Secured fields are not
                indexed for search and are only visible when explicitly
                assigned.
              default: false
              type: boolean
            placeholder:
              $ref: "#/components/schemas/TranslationConfig"
            validation:
              description: Additional validation rules applied to the field.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/ValidationConfig"
            helperText:
              $ref: "#/components/schemas/TranslationConfig"
            hideLabel:
              default: false
              type: boolean
            uncorrectable:
              description: Indicates whether the field can be modified during record
                correction.
              default: false
              type: boolean
            value:
              description: Reference to the source field or fields. When a value is defined,
                it is copied from the parent field when changed. If multiple
                references are provided, the first truthy value is used. A
                FieldReference with $$code computes the value via a custom
                client-side function.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                    $$code:
                      description: Serialised client-side function body. When present the expression
                        is evaluated rather than dereferenced.
                      type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field value, with an optional client-side
                    computation applied.
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
            analytics:
              description: Indicates whether the field is included in analytics. When enabled,
                its value becomes available in the analytics dashboard.
              default: false
              type: boolean
            type:
              type: string
              const: OFFICE
            defaultValue:
              anyOf:
                - type: string
                  minLength: 1
                - type: object
                  properties:
                    $$code:
                      type: string
                      description: Serialised client-side function body. Receives (undefined, context)
                        where context includes $now, $online, and system
                        variables.
                  required:
                    - $$code
                  additionalProperties: false
                  description: A context-only computation used as a field default value.
            configuration:
              type: object
              properties:
                allowedLocations:
                  description: Limits which location options are selectable depending on user
                    jurisdiction and location.
                  type: object
                  properties:
                    $jurisdiction:
                      anyOf:
                        - type: string
                          enum:
                            - administrativeArea
                            - location
                            - all
                          description: Filters based on user jurisdiction relative to their office
                            location in hierarchy.
                        - type: object
                          properties:
                            $scope:
                              type: string
                              enum:
                                - organisation.read-locations
                                - user.read
                                - user.create
                                - user.edit
                                - user.search
                                - record.search
                                - record.create
                                - record.read
                                - record.declare
                                - record.notify
                                - record.edit
                                - record.reject
                                - record.archive
                                - record.review-duplicates
                                - record.register
                                - record.print-certified-copies
                                - record.request-correction
                                - record.correct
                                - record.unassign-others
                                - record.custom-action
                                - bypassratelimit
                                - record.reindex
                                - user.data-seeding
                                - integration.create
                                - record.import
                                - config.update-all
                                - attachment.upload
                                - profile.electronic-signature
                                - user.read-only-my-audit
                                - performance.read
                                - performance.read-dashboards
                                - performance.vital-statistics-export
                                - record.confirm-registration
                                - record.reject-registration
                                - workqueue
                                - dashboard.view
                            $option:
                              type: string
                              enum:
                                - event
                                - placeOfEvent
                                - declaredIn
                                - declaredBy
                                - registeredIn
                                - registeredBy
                                - accessLevel
                                - role
                                - ids
                          required:
                            - $scope
                            - $option
                          additionalProperties: false
                  required:
                    - $jurisdiction
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - label
            - type
          additionalProperties: false
          description: Input field for an office
        - $ref: "#/components/schemas/SignatureField"
        - $ref: "#/components/schemas/EmailField"
        - $ref: "#/components/schemas/FileUploadWithOptions"
        - $ref: "#/components/schemas/DataField"
        - $ref: "#/components/schemas/ButtonField"
        - $ref: "#/components/schemas/AlphaPrintButton"
        - $ref: "#/components/schemas/HttpField"
        - $ref: "#/components/schemas/AutocompleteField"
        - $ref: "#/components/schemas/LinkButtonField"
        - $ref: "#/components/schemas/VerificationStatus"
        - $ref: "#/components/schemas/QrReaderField"
        - $ref: "#/components/schemas/IdReaderField"
        - $ref: "#/components/schemas/QueryParamReaderField"
        - $ref: "#/components/schemas/LoaderField"
        - $ref: "#/components/schemas/SearchField"
        - $ref: "#/components/schemas/CustomField"
        - $ref: "#/components/schemas/HiddenField"
        - $ref: "#/components/schemas/UserRoleField"
      description: Form field configuration
      type: object
    FieldGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FIELD_GROUP
        fields:
          type: array
          items:
            $ref: "#/components/schemas/FieldConfig"
      required:
        - id
        - label
        - type
        - fields
      additionalProperties: false
      description: A group of fields that are displayed together
    FieldConditional:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: SHOW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'SHOW' conditional is defined, the component is shown to the
            user only if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: ENABLE
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'ENABLE' conditional is defined, the component is enabled only
            if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: DISPLAY_ON_REVIEW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'DISPLAY_ON_REVIEW' conditional is defined, the component is
            shown on the review page only if both the 'DISPLAY_ON_REVIEW' and
            'SHOW' conditions are met. This should only be used for fields
            within declaration forms, as they are the only ones with review
            pages.
      description: Conditional gating whether a form field is shown (SHOW), enabled
        (ENABLE), or displayed on the review page (DISPLAY_ON_REVIEW). When
        omitted, the field is shown and enabled for everyone, and is displayed
        on review whenever it has a value.
      type: object
    ValidationConfig:
      type: object
      properties:
        validator:
          description: Conditional expression that must hold for the field value to be
            considered valid.
          $ref: "#/components/schemas/Conditional"
        message:
          description: Error message displayed when the validator does not hold.
          $ref: "#/components/schemas/TranslationConfig"
      required:
        - validator
        - message
      additionalProperties: false
      description: Validation rule applied to a form field. The validator is a
        conditional expression that must hold for the field value to be
        considered valid.
    Address:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ADDRESS
        configuration:
          type: object
          properties:
            lineSeparator:
              type: string
            fields:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier of the field.
                      type:
                        type: string
                        const: COUNTRY
                      label:
                        description: Human-readable label of the field.
                        $ref: "#/components/schemas/TranslationConfig"
                      conditionals:
                        description: Conditions determining when the field is shown or enabled. By
                          default, the field is always shown and enabled.
                        default: []
                        type: array
                        items:
                          $ref: "#/components/schemas/FieldConditional"
                      required:
                        description: Indicates whether the field is mandatory.
                        default: false
                        anyOf:
                          - type: boolean
                          - type: object
                            properties:
                              message:
                                description: Custom required validation message
                                $ref: "#/components/schemas/TranslationConfig"
                            required:
                              - message
                            additionalProperties: false
                      optionOverrides:
                        description: Conditionals for specific countries. Countries not listed are
                          always shown and enabled.
                        type: array
                        items:
                          type: object
                          properties:
                            value:
                              type: string
                              description: The value of the option
                            conditionals:
                              default: []
                              type: array
                              items:
                                $ref: "#/components/schemas/ActionConditional"
                          required:
                            - value
                          additionalProperties: false
                    required:
                      - id
                      - type
                    additionalProperties: false
                  - type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier of the field.
                      type:
                        type: string
                        const: ADMINISTRATIVE_AREA
                      label:
                        description: Human-readable label of the field.
                        $ref: "#/components/schemas/TranslationConfig"
                      conditionals:
                        description: Conditions determining when the field is shown or enabled. By
                          default, the field is always shown and enabled.
                        default: []
                        type: array
                        items:
                          $ref: "#/components/schemas/FieldConditional"
                      required:
                        description: Indicates whether the field is mandatory.
                        default: false
                        anyOf:
                          - type: boolean
                          - type: object
                            properties:
                              message:
                                description: Custom required validation message
                                $ref: "#/components/schemas/TranslationConfig"
                            required:
                              - message
                            additionalProperties: false
                    required:
                      - id
                      - type
                    additionalProperties: false
            streetAddressForm:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  required:
                    default: false
                    anyOf:
                      - type: boolean
                      - type: object
                        properties:
                          message:
                            description: Custom required validation message
                            $ref: "#/components/schemas/TranslationConfig"
                        required:
                          - message
                        additionalProperties: false
                  label:
                    $ref: "#/components/schemas/TranslationConfig"
                  type:
                    type: string
                    const: TEXT
                  conditionals:
                    default: []
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  parent:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
                required:
                  - id
                  - label
                  - type
                additionalProperties: false
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          additionalProperties: false
        defaultValue:
          anyOf:
            - type: object
              properties:
                country:
                  type: string
                streetLevelDetails:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                addressType:
                  type: string
                  const: DOMESTIC
                administrativeArea:
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: object
                      properties:
                        $userField:
                          type: string
                          enum:
                            - id
                            - name
                            - role
                            - fullHonorificName
                            - device
                            - firstname
                            - middlename
                            - surname
                            - signature
                            - avatar
                            - primaryOfficeId
                            - administrativeAreaId
                        $location:
                          type: string
                      required:
                        - $userField
                      additionalProperties: false
              required:
                - country
                - addressType
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: Address input field – a combination of location and text fields
    ActionConditional:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: SHOW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'SHOW' conditional is defined, the component is shown to the
            user only if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: ENABLE
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'ENABLE' conditional is defined, the component is enabled only
            if the condition is met
      description: Conditional gating whether an action is shown (SHOW) or enabled
        (ENABLE). When omitted from an action, the action is shown and enabled
        for everyone.
      type: object
    TextField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TEXT
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            type: text
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
            type:
              type: string
              enum:
                - text
                - password
            prefix:
              $ref: "#/components/schemas/TranslationConfig"
            postfix:
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A text input field
    NumberField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NUMBER
        defaultValue:
          anyOf:
            - type: number
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            min:
              description: Minimum value
              type: number
            max:
              description: Maximum value
              type: number
            integer:
              description: When true, only whole numbers are allowed
              type: boolean
            prefix:
              $ref: "#/components/schemas/TranslationConfig"
            postfix:
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A number input field
    NumberWithUnitField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NUMBER_WITH_UNIT
        defaultValue:
          anyOf:
            - type: object
              properties:
                numericValue:
                  type: number
                unit:
                  type: string
              required:
                - numericValue
                - unit
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfig"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options for the unit select
        configuration:
          type: object
          properties:
            min:
              description: Minimum value of the number field
              type: number
            max:
              description: Maximum value of the number field
              type: number
            numberFieldPlaceholder:
              description: Placeholder for the number field
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A number with unit input field
    TextAreaField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TEXTAREA
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            rows: 4
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
            rows:
              description: Number of visible text lines
              type: number
            cols:
              description: Number of visible columns
              type: number
            prefix:
              $ref: "#/components/schemas/TranslationConfig"
            postfix:
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A multiline text input
    AgeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: AGE
        defaultValue:
          anyOf:
            - type: number
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            asOfDate:
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            prefix:
              $ref: "#/components/schemas/TranslationConfig"
            postfix:
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - asOfDate
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: An age input field which uses the current date as the asOfDate
    DateField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATE
        defaultValue:
          description: Default date value(yyyy-MM-dd)
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    $$now:
                      type: boolean
                      const: true
                  required:
                    - $$now
                  additionalProperties: false
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: Date in the format YYYY-MM-DD
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            notice:
              description: Text to display above the date input
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A date input (yyyy-MM-dd)
    TimeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TIME
        defaultValue:
          description: Default time value (HH-mm)
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    $$now:
                      type: boolean
                      const: true
                  required:
                    - $$now
                  additionalProperties: false
                - type: string
                  pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            use12HourFormat:
              description: Whether to use 12-hour format
              type: boolean
            notice:
              description: Text to display above the time input
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A single time input (HH-mm)
    DateRangeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATE_RANGE
        defaultValue:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    start:
                      type: string
                      format: date
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      description: Date in the format YYYY-MM-DD
                    end:
                      type: string
                      format: date
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      description: Date in the format YYYY-MM-DD
                  required:
                    - start
                    - end
                  additionalProperties: false
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: Date in the format YYYY-MM-DD
              description: Date range with start and end dates in the format YYYY-MM-DD.
                Inclusive start, exclusive end.
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            notice:
              description: Text to display above the date input
              $ref: "#/components/schemas/TranslationConfig"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: "A date range input ({ start: yyyy-MM-dd, end: yyyy-MM-dd })"
    SelectDateRangeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SELECT_DATE_RANGE
        defaultValue:
          anyOf:
            - type: string
              enum:
                - last7Days
                - last30Days
                - last90Days
                - last365Days
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                enum:
                  - last7Days
                  - last30Days
                  - last90Days
                  - last365Days
                description: The value of the option
              label:
                description: The label of the option
                $ref: "#/components/schemas/TranslationConfig"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A date range selection field
    ImageViewField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: IMAGE_VIEW
        defaultValue:
          type: string
          minLength: 1
        configuration:
          type: object
          properties:
            alt:
              description: Alternative text for the image
              type: string
            width:
              description: CSS width value for the image
              type: string
            height:
              description: CSS height value for the image
              type: string
            textAlign:
              description: Text alignment for positioning the image in its container
              type: string
              enum:
                - left
                - center
                - right
                - start
                - end
            objectFit:
              description: How the image should be resized to fit the container
              type: string
              enum:
                - contain
                - cover
                - fill
                - none
                - scale-down
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only image component for form pages
    Paragraph:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: PARAGRAPH
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                hint:
                  description: When true, paragraph is styled as a hint with grey color
                  type: boolean
                textAlign:
                  description: Text alignment for the paragraph
                  type: string
                  enum:
                    - left
                    - center
                    - right
                    - start
                    - end
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only HTML <p> paragraph
    Heading:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: HEADING
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                fontVariant:
                  description: Font variant to use for the paragraph text
                  type: string
                  enum:
                    - reg12
                    - reg14
                    - reg16
                    - reg18
                    - h4
                    - h3
                textAlign:
                  description: Text alignment for the paragraph
                  type: string
                  enum:
                    - left
                    - center
                    - right
                    - start
                    - end
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only heading component for form pages
    RadioGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: RADIO_GROUP
        defaultValue:
          anyOf:
            - type: string
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfig"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        configuration:
          type: object
          properties:
            styles:
              type: object
              properties:
                size:
                  type: string
                  enum:
                    - NORMAL
                    - LARGE
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A grouped radio button field
    BulletList:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: BULLET_LIST
        items:
          type: array
          items:
            $ref: "#/components/schemas/TranslationConfig"
          description: A list of items
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                fontVariant:
                  type: string
                  enum:
                    - reg12
                    - reg14
                    - reg16
                    - reg18
                    - h4
                    - h3
                    - h2
                    - h1
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - items
        - configuration
      additionalProperties: false
      description: A list of bullet points
    PageHeader:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: PAGE_HEADER
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A read-only header component for form pages
    Select:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SELECT
        defaultValue:
          anyOf:
            - type: string
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfig"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        noOptionsMessage:
          description: "

            \    A translation configuration object used to display
            a message when no options are available.

            \    It must follow the shape: { id: string;
            defaultMessage: string; description?: string }.

            \    The message is rendered via
            intl.formatMessage(noOptionsMessage, { input }),

            \    where 'input' represents the text entered in the
            Select field.

            \    You can reference this variable in your message,
            for example:

            \    { ..., defaultMessage: \"'{input}' is not listed
            among the health facilities.\" }

            \  "
          $ref: "#/components/schemas/TranslationConfig"
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A select input field
    NameField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NAME
        defaultValue:
          anyOf:
            - type: object
              properties:
                firstname:
                  anyOf:
                    - type: object
                      properties:
                        $userField:
                          type: string
                          enum:
                            - id
                            - name
                            - role
                            - fullHonorificName
                            - device
                            - firstname
                            - middlename
                            - surname
                            - signature
                            - avatar
                            - primaryOfficeId
                            - administrativeAreaId
                        $location:
                          type: string
                      required:
                        - $userField
                      additionalProperties: false
                    - type: string
                      minLength: 1
                middlename:
                  anyOf:
                    - type: object
                      properties:
                        $userField:
                          type: string
                          enum:
                            - id
                            - name
                            - role
                            - fullHonorificName
                            - device
                            - firstname
                            - middlename
                            - surname
                            - signature
                            - avatar
                            - primaryOfficeId
                            - administrativeAreaId
                        $location:
                          type: string
                      required:
                        - $userField
                      additionalProperties: false
                    - type: string
                      minLength: 1
                surname:
                  anyOf:
                    - type: object
                      properties:
                        $userField:
                          type: string
                          enum:
                            - id
                            - name
                            - role
                            - fullHonorificName
                            - device
                            - firstname
                            - middlename
                            - surname
                            - signature
                            - avatar
                            - primaryOfficeId
                            - administrativeAreaId
                        $location:
                          type: string
                      required:
                        - $userField
                      additionalProperties: false
                    - type: string
                      minLength: 1
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            name:
              firstname:
                required: true
              surname:
                required: true
          type: object
          properties:
            name:
              default:
                firstname:
                  required: true
                surname:
                  required: true
              type: object
              properties:
                firstname:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfig"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfig"
                  additionalProperties: false
                middlename:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfig"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfig"
                  additionalProperties: false
                surname:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfig"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfig"
                  additionalProperties: false
              additionalProperties: false
            order:
              type: array
              items:
                type: string
                enum:
                  - firstname
                  - middlename
                  - surname
            maxLength:
              description: Maximum length of the text
              type: number
            prefix:
              $ref: "#/components/schemas/TranslationConfig"
            postfix:
              $ref: "#/components/schemas/TranslationConfig"
            showParentFieldError:
              description: If true, shows the parent field error and hides the subfield error
              default: false
              type: boolean
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering a persons name
    PhoneField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        type:
          type: string
          const: PHONE
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering a phone number
    IdField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        type:
          type: string
          const: ID
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering an ID
    Checkbox:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: CHECKBOX
        defaultValue:
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
      required:
        - id
        - label
        - type
        - defaultValue
      additionalProperties: false
      description: A boolean checkbox field
    File:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FILE
        defaultValue:
          anyOf:
            - type: object
              properties:
                path:
                  type: string
                  description: A relative path within the S3 bucket, never starting with /. e.g.
                    document-id.jpg or directory/document-id.jpg. The document
                    service constructs the full /bucket/path internally.
                originalFilename:
                  type: string
                type:
                  type: string
              required:
                - path
                - originalFilename
                - type
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
            maxImageSize:
              type: object
              properties:
                targetSize:
                  type: object
                  properties:
                    width:
                      type: number
                    height:
                      type: number
                  required:
                    - width
                    - height
                  additionalProperties: false
              required:
                - targetSize
              additionalProperties: false
            style:
              type: object
              properties:
                width:
                  description: Whether the file upload button should take the full width of the
                    container or not
                  type: string
                  enum:
                    - full
                    - auto
              additionalProperties: false
            fileName:
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A file upload field
    Country:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: COUNTRY
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        optionOverrides:
          description: Conditionals for specific countries. Countries not listed are
            always shown and enabled.
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
            additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for selecting a country
    AdministrativeAreaField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ADMINISTRATIVE_AREA
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            partOf:
              description: Parent location
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
            type:
              type: string
              enum:
                - ADMIN_STRUCTURE
                - HEALTH_FACILITY
                - CRVS_OFFICE
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          required:
            - type
          additionalProperties: false
          description: Administrative area options
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Administrative area input field
    Divider:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DIVIDER
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A horizontal line divider
    LocationInput:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LOCATION
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            locationTypes:
              description: Types of the locations that are available for selection.
              type: array
              items:
                type: string
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for selecting a location
    SignatureField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SIGNATURE
        signaturePromptLabel:
          description: Title of the signature modal
          $ref: "#/components/schemas/TranslationConfig"
        defaultValue:
          anyOf:
            - type: object
              properties:
                path:
                  type: string
                  description: A relative path within the S3 bucket, never starting with /. e.g.
                    document-id.jpg or directory/document-id.jpg. The document
                    service constructs the full /bucket/path internally.
                originalFilename:
                  type: string
                type:
                  type: string
              required:
                - path
                - originalFilename
                - type
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - signaturePromptLabel
        - configuration
      additionalProperties: false
      description: A signature input field
    EmailField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: EMAIL
        configuration:
          default:
            maxLength: 255
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
          additionalProperties: false
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: An email input field
    FileUploadWithOptions:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FILE_WITH_OPTIONS
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfig"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        defaultValue:
          anyOf:
            - type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                    description: A relative path within the S3 bucket, never starting with /. e.g.
                      document-id.jpg or directory/document-id.jpg. The document
                      service constructs the full /bucket/path internally.
                  originalFilename:
                    type: string
                  type:
                    type: string
                  option:
                    type: string
                required:
                  - path
                  - originalFilename
                  - type
                  - option
                additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            maxImageSize:
              type: object
              properties:
                targetSize:
                  type: object
                  properties:
                    width:
                      type: number
                    height:
                      type: number
                  required:
                    - width
                    - height
                  additionalProperties: false
              required:
                - targetSize
              additionalProperties: false
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
        - configuration
      additionalProperties: false
      description: A field for uploading files with file type options
    DataField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATA
        configuration:
          type: object
          properties:
            subtitle:
              $ref: "#/components/schemas/TranslationConfig"
            data:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        description: ID for the data entry.
                      label:
                        $ref: "#/components/schemas/TranslationConfig"
                      value:
                        anyOf:
                          - anyOf:
                              - $ref: "#/components/schemas/TranslationConfig"
                              - type: string
                          - type: object
                            properties:
                              $$field:
                                type: string
                                description: Id of the field to reference
                              $$subfield:
                                default: []
                                description: 'If the FieldValue is an object, subfield can be used to refer to
                                  e.g. `["foo", "bar"]` in `{ foo: { bar: 3 }
                                  }`'
                                type: array
                                items:
                                  type: string
                              $$code:
                                description: Serialised client-side function body. When present the expression
                                  is evaluated rather than dereferenced.
                                type: string
                            required:
                              - $$field
                              - $$subfield
                            additionalProperties: false
                            description: Reference to a field value, with an optional client-side
                              computation applied.
                    required:
                      - id
                      - label
                      - value
                    additionalProperties: false
                    description: Static data entry
                  - type: object
                    properties:
                      fieldId:
                        type: string
                    required:
                      - fieldId
                    additionalProperties: false
                description: Data entry can be either a static data entry, or a reference to
                  another field in the current form or the declaration.
          required:
            - data
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A field for displaying a table of read-only data
    ButtonField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: BUTTON
        defaultValue:
          anyOf:
            - type: number
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            icon:
              description: Icon for the button. You can find icons from OpenCRVS UI-Kit.
              type: string
            loading:
              description: Whether the button is in a loading state and shows a spinner
              type: boolean
            buttonSize:
              description: Size of the button.
              type: string
              enum:
                - small
                - medium
                - large
            buttonType:
              description: Type of the button.
              type: string
              enum:
                - primary
                - secondary
                - tertiary
                - positive
                - negative
                - secondaryNegative
                - icon
                - iconPrimary
            textColor:
              description: Color of the text.
              type: string
              enum:
                - primary
                - copy
            textVariant:
              description: Variant of the text.
              type: string
              enum:
                - bold14
                - reg14
            text:
              description: Text to display on the button
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A generic button that can be used to trigger an action
    AlphaPrintButton:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ALPHA_PRINT_BUTTON
        configuration:
          type: object
          properties:
            template:
              type: string
              description: Template ID from countryconfig templates to use for printing
            buttonLabel:
              description: Label for the print button
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - template
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: An experimental print button field for printing certificates during
        the declaration process
    HttpField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: HTTP
        defaultValue:
          anyOf:
            - type: object
              properties:
                loading:
                  type: boolean
                error:
                  anyOf:
                    - type: object
                      properties:
                        statusCode:
                          type: number
                        message:
                          type: string
                      required:
                        - statusCode
                        - message
                      additionalProperties: false
                    - type: "null"
                data: {}
              required:
                - loading
                - data
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            trigger:
              description: Reference to the field that triggers the HTTP request when its
                value changes. If not provided, the HTTP request is triggered
                once on component mount.
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
            url:
              type: string
              description: URL to send the HTTP request to
            method:
              type: string
              enum:
                - GET
                - POST
                - PUT
                - DELETE
            headers:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: string
            body:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            errorValue:
              description: Value to set if the request fails
            params:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                anyOf:
                  - type: string
                  - type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                      $$code:
                        description: Serialised client-side function body. When present the expression
                          is evaluated rather than dereferenced.
                        type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field value, with an optional client-side
                      computation applied.
            timeout:
              default: 15000
              description: Request timeout in milliseconds
              type: number
          required:
            - url
            - method
            - timeout
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Makes a background HTTP request to an external service and stores
        the response so other fields can use it. Has no visible UI — pair with
        LOADER to show request status.
    AutocompleteField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: AUTOCOMPLETE
        configuration:
          type: object
          properties:
            url:
              type: string
              description: URL to fetch autocomplete suggestions from. This should be a
                country config server endpoint.
            method:
              default: GET
              type: string
              enum:
                - GET
                - POST
            defaultOptions:
              description: Manual entry is supported through configuration, allowing users to
                provide values not currently represented in the dataset.
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                  value:
                    type: string
                required:
                  - label
                  - value
                additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Generic autocomplete component designed for use with large
        dictionary-based datasets. The component supports dynamic retrieval of
        options from configurable data sources and is intended for datasets that
        may contain tens or hundreds of thousands of records.
    LinkButtonField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LINK_BUTTON
        configuration:
          type: object
          properties:
            url:
              type: string
              description: URL to open
            text:
              description: Text to display on the button
              $ref: "#/components/schemas/TranslationConfig"
            icon:
              description: Icon for the button. You can find icons from OpenCRVS UI-Kit.
              type: string
          required:
            - url
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A button that opens a URL link
    VerificationStatus:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: VERIFICATION_STATUS
        defaultValue:
          anyOf:
            - type: string
              enum:
                - verified
                - authenticated
                - failed
                - pending
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            status:
              description: Text to display on the status pill.
              $ref: "#/components/schemas/TranslationConfig"
            description:
              description: Explaining text on the banner in form.
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - status
            - description
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Displays a verification state (e.g. ID verified / pending). Often
        paired with ID_READER — it can read its value off an ID_READER rather
        than holding its own.
    QrReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: QR_READER
        defaultValue:
          anyOf:
            - type: object
              properties:
                data: {}
              required:
                - data
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            validator:
              $ref: "#/components/schemas/QrReaderFieldValidator"
          required:
            - validator
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: QR code reader field, including optional JSON Schema validator.
    QrReaderFieldValidator:
      description: JSON Schema to validate the scanned QR code data against before
        populating the form fields.
    IdReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ID_READER
        defaultValue:
          anyOf:
            - type: object
              properties:
                data: {}
              required:
                - data
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        methods:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/QrReaderField"
              - $ref: "#/components/schemas/LinkButtonField"
            description: Methods for reading an ID
      required:
        - id
        - label
        - type
        - methods
      additionalProperties: false
      description: A wrapper around nested form fields, specifically QR_READER and
        LINK_BUTTON. It can hold the QR_READERs value.
    QueryParamReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: QUERY_PARAM_READER
        configuration:
          type: object
          properties:
            pickParams:
              type: array
              items:
                type: string
              description: List of query parameters to read from the URL
          required:
            - pickParams
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A field that maps URL query params into form values and clears them
        afterward
    LoaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          description: Loader field does not show a label by default
          default: true
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LOADER
        variant:
          default: default
          type: string
          enum:
            - default
            - highlighted
        configuration:
          type: object
          properties:
            text:
              description: Display text above the loading spinner
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A non-interactive field that indicates an in progress operation in form
    SearchField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SEARCH
        defaultValue:
          anyOf:
            - type: object
              properties:
                loading:
                  type: boolean
                error:
                  anyOf:
                    - type: object
                      properties:
                        statusCode:
                          type: number
                        message:
                          type: string
                      required:
                        - statusCode
                        - message
                      additionalProperties: false
                    - type: "null"
                data: {}
              required:
                - loading
                - data
              additionalProperties: false
            - type: object
              properties:
                $$code:
                  type: string
                  description: Serialised client-side function body. Receives (undefined, context)
                    where context includes $now, $online, and system variables.
              required:
                - $$code
              additionalProperties: false
              description: A context-only computation used as a field default value.
        configuration:
          type: object
          properties:
            query:
              default:
                type: and
                clauses:
                  - eventType: tennis-club-membership
                    status:
                      type: anyOf
                      terms:
                        - CREATED
                        - NOTIFIED
                        - DECLARED
                        - REGISTERED
                        - ARCHIVED
                    updatedAt:
                      type: range
                      gte: 2025-05-22
                      lte: 2025-05-29
                    data: {}
              $ref: "#/components/schemas/QueryType"
            limit:
              default: 100
              type: number
            offset:
              default: 0
              type: number
            validation:
              $ref: "#/components/schemas/ValidationConfig"
            indicators:
              type: object
              properties:
                loading:
                  description: Text to display while the search is in progress
                  $ref: "#/components/schemas/TranslationConfig"
                offline:
                  description: Text to display when the application is offline
                  $ref: "#/components/schemas/TranslationConfig"
                noResultsError:
                  description: Text to display when no results are found during the search
                  $ref: "#/components/schemas/TranslationConfig"
                httpError:
                  description: Text to display when there is an HTTP error during the search
                  $ref: "#/components/schemas/TranslationConfig"
                confirmButton:
                  $ref: "#/components/schemas/TranslationConfig"
                clearButton:
                  $ref: "#/components/schemas/TranslationConfig"
                clearModal:
                  type: object
                  properties:
                    title:
                      $ref: "#/components/schemas/TranslationConfig"
                    description:
                      $ref: "#/components/schemas/TranslationConfig"
                    cancel:
                      $ref: "#/components/schemas/TranslationConfig"
                    confirm:
                      $ref: "#/components/schemas/TranslationConfig"
                  additionalProperties: false
                ok:
                  $ref: "#/components/schemas/TranslationConfig"
              additionalProperties: false
          required:
            - query
            - limit
            - offset
            - validation
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A search input field
    QueryType:
      type: object
      properties:
        type:
          anyOf:
            - type: string
              const: and
            - type: string
              const: or
          default: and
        clauses:
          minItems: 1
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/QueryExpression"
              - $ref: "#/components/schemas/QueryType"
          default:
            - eventType: tennis-club-membership
              status:
                type: anyOf
                terms:
                  - CREATED
                  - NOTIFIED
                  - DECLARED
                  - REGISTERED
                  - ARCHIVED
              updatedAt:
                type: range
                gte: 2025-05-22
                lte: 2025-05-29
              data: {}
      required:
        - type
        - clauses
      additionalProperties: false
    QueryExpression:
      type: object
      properties:
        id:
          type: string
        eventType:
          type: string
        status:
          anyOf:
            - $ref: "#/components/schemas/AnyOfStatus"
            - $ref: "#/components/schemas/ExactStatus"
        createdAt:
          $ref: "#/components/schemas/DateCondition"
        updatedAt:
          $ref: "#/components/schemas/DateCondition"
        legalStatuses.DECLARED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - type: "null"
        legalStatuses.DECLARED.createdByRole:
          $ref: "#/components/schemas/AnyOf"
        legalStatuses.REGISTERED.acceptedAt:
          $ref: "#/components/schemas/DateCondition"
        legalStatuses.REGISTERED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - type: "null"
        legalStatuses.REGISTERED.createdByRole:
          $ref: "#/components/schemas/AnyOf"
        legalStatuses.REGISTERED.registrationNumber:
          $ref: "#/components/schemas/Exact"
        createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/Exact"
        updatedAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/Exact"
        assignedTo:
          $ref: "#/components/schemas/Exact"
        createdByUserType:
          $ref: "#/components/schemas/ExactUserType"
        updatedByUserRole:
          $ref: "#/components/schemas/Exact"
        createdBy:
          $ref: "#/components/schemas/Exact"
        updatedBy:
          $ref: "#/components/schemas/Exact"
        trackingId:
          $ref: "#/components/schemas/Exact"
        flags:
          $ref: "#/components/schemas/ContainsFlags"
        data:
          $ref: "#/components/schemas/QueryInput"
      additionalProperties: false
    AnyOfStatus:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
            enum:
              - CREATED
              - NOTIFIED
              - DECLARED
              - REGISTERED
              - ARCHIVED
      required:
        - type
        - terms
      additionalProperties: false
    ExactStatus:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - CREATED
            - NOTIFIED
            - DECLARED
            - REGISTERED
            - ARCHIVED
      required:
        - type
        - term
      additionalProperties: false
    DateCondition:
      anyOf:
        - $ref: "#/components/schemas/ExactDate"
        - $ref: "#/components/schemas/RangeDate"
        - $ref: "#/components/schemas/TimePeriod"
    ExactDate:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - term
      additionalProperties: false
    RangeDate:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        lte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - gte
        - lte
      additionalProperties: false
    TimePeriod:
      type: object
      properties:
        type:
          type: string
          const: timePeriod
        term:
          type: string
          enum:
            - last7Days
            - last30Days
            - last90Days
            - last365Days
      required:
        - type
        - term
      additionalProperties: false
    Within:
      type: object
      properties:
        type:
          type: string
          const: within
        location:
          type: string
      required:
        - type
        - location
      additionalProperties: false
    AnyOf:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
      required:
        - type
        - terms
      additionalProperties: false
    Exact:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
      required:
        - type
        - term
      additionalProperties: false
    ExactUserType:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - user
            - system
      required:
        - type
        - term
      additionalProperties: false
    ContainsFlags:
      type: object
      properties:
        anyOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
        noneOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
      additionalProperties: false
    QueryInput:
      anyOf:
        - oneOf:
            - $ref: "#/components/schemas/Fuzzy"
            - $ref: "#/components/schemas/Exact"
            - $ref: "#/components/schemas/Range"
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/AnyOf"
          type: object
          discriminator:
            propertyName: type
            mapping:
              fuzzy: "#/components/schemas/Fuzzy"
              exact: "#/components/schemas/Exact"
              range: "#/components/schemas/Range"
              within: "#/components/schemas/Within"
              anyOf: "#/components/schemas/AnyOf"
        - type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: "#/components/schemas/QueryInput"
    Fuzzy:
      type: object
      properties:
        type:
          type: string
          const: fuzzy
        term:
          type: string
      required:
        - type
        - term
      additionalProperties: false
    Range:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          type: string
        lte:
          type: string
      required:
        - type
        - gte
        - lte
      additionalProperties: false
    CustomField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: CUSTOM
        defaultValue: {}
        src:
          type: string
          description: Module source path for the custom field component
        configuration: {}
      required:
        - id
        - label
        - type
        - src
      additionalProperties: false
      description: An expiremental custom field that is defined by a module source path
    HiddenField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          default: false
          type: boolean
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ALPHA_HIDDEN
        defaultValue:
          type: string
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A non-interactive, hidden field that only hold a value in the form
    UserRoleField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfig"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfig"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfig"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used. A
            FieldReference with $$code computes the value via a custom
            client-side function.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
                $$code:
                  description: Serialised client-side function body. When present the expression
                    is evaluated rather than dereferenced.
                  type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field value, with an optional client-side
                computation applied.
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                  $$code:
                    description: Serialised client-side function body. When present the expression
                      is evaluated rather than dereferenced.
                    type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field value, with an optional client-side
                  computation applied.
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: USER_ROLE
        defaultValue:
          type: string
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A select dropdown that is automatically populated with available
        user roles
    DeclareActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        deduplication:
          $ref: "#/components/schemas/DeduplicationConfig"
        type:
          type: string
          const: DECLARE
        review:
          type: object
          properties:
            title:
              description: Title of the review page
              $ref: "#/components/schemas/TranslationConfig"
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields displayed on the review page for annotations.
          required:
            - title
            - fields
          additionalProperties: false
          description: Configuration of the review page fields.
        dialogCopy:
          type: object
          properties:
            notify:
              description: Confirmation text for the notify action
              $ref: "#/components/schemas/TranslationConfig"
            declare:
              description: Confirmation text for the declare action
              $ref: "#/components/schemas/TranslationConfig"
            register:
              description: Confirmation text for the register action
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - notify
            - declare
            - register
          additionalProperties: false
      required:
        - label
        - flags
        - type
        - review
      additionalProperties: false
      description: Configuration for the declare action. Includes review-page fields.
        Shared with the notify action (ActionType.NOTIFY).
    DeduplicationConfig:
      type: object
      properties:
        id:
          type: string
        label:
          $ref: "#/components/schemas/TranslationConfig"
        query:
          $ref: "#/components/schemas/Clause"
      required:
        - id
        - label
        - query
      additionalProperties: false
      description: Configuration for duplicate detection on a declare or register
        action. The query is built from fuzzy / strict / date-range matchers
        combined with and/or/not.
    Clause:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: not
            clause:
              $ref: "#/components/schemas/Clause"
          required:
            - type
            - clause
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              const: and
            clauses:
              type: array
              items:
                $ref: "#/components/schemas/Clause"
          required:
            - type
            - clauses
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              const: or
            clauses:
              type: array
              items:
                $ref: "#/components/schemas/Clause"
          required:
            - type
            - clauses
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              default:
                fuzziness: AUTO:4,7
                boost: 1
              type: object
              properties:
                fuzziness:
                  default: AUTO:4,7
                  anyOf:
                    - type: string
                    - type: number
                boost:
                  default: 1
                  type: number
                matchAgainst:
                  type: string
              required:
                - fuzziness
                - boost
              additionalProperties: false
            type:
              type: string
              const: fuzzy
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              default:
                boost: 1
              type: object
              properties:
                boost:
                  default: 1
                  type: number
                value:
                  type: string
                matchAgainst:
                  type: string
              required:
                - boost
              additionalProperties: false
            type:
              type: string
              const: strict
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              type: object
              properties:
                pivot:
                  type: number
                days:
                  type: number
                boost:
                  default: 1
                  type: number
                matchAgainst:
                  type: string
              required:
                - days
                - boost
              additionalProperties: false
            type:
              type: string
              const: dateRange
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
      type: object
    RejectActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: REJECT
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for rejecting a record before registration.
    RegisterActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        deduplication:
          $ref: "#/components/schemas/DeduplicationConfig"
        type:
          type: string
          const: REGISTER
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for registering a record.
    PrintCertificateActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: PRINT_CERTIFICATE
        printForm:
          type: object
          properties:
            label:
              description: Human readable description of the form
              $ref: "#/components/schemas/TranslationConfig"
            pages:
              type: array
              items:
                $ref: "#/components/schemas/PageConfig"
          required:
            - label
            - pages
          additionalProperties: false
          description: Configuration of the form used for system actions beyond
            declaration, supporting a wider range of page types.
      required:
        - label
        - flags
        - type
        - printForm
      additionalProperties: false
      description: Configuration for printing a certificate of a registered record.
    PageConfig:
      oneOf:
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier for the page
            title:
              description: Header title of the page
              $ref: "#/components/schemas/TranslationConfig"
            requireCompletionToContinue:
              default: false
              description: If true, all required fields must be filled before continuing to
                the next page
              type: boolean
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields to be rendered on the page
            conditional:
              description: Page will be shown if condition is met. If conditional is not
                defined, the page will be always shown.
              $ref: "#/components/schemas/Conditional"
            type:
              default: FORM
              type: string
              const: FORM
          required:
            - id
            - title
            - requireCompletionToContinue
            - fields
            - type
          additionalProperties: false
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier for the page
            title:
              description: Header title of the page
              $ref: "#/components/schemas/TranslationConfig"
            requireCompletionToContinue:
              default: false
              description: If true, all required fields must be filled before continuing to
                the next page
              type: boolean
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields to be rendered on the page
            conditional:
              description: Page will be shown if condition is met. If conditional is not
                defined, the page will be always shown.
              $ref: "#/components/schemas/Conditional"
            type:
              type: string
              const: VERIFICATION
            actions:
              $ref: "#/components/schemas/VerificationActionConfig"
          required:
            - id
            - title
            - requireCompletionToContinue
            - fields
            - type
            - actions
          additionalProperties: false
      description: Configuration for a single page in a form. Either a form page with
        fields and a continue button, or a verification page with verify/cancel
        options.
      type: object
    VerificationActionConfig:
      type: object
      properties:
        verify:
          type: object
          properties:
            label:
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - label
          additionalProperties: false
        cancel:
          type: object
          properties:
            label:
              $ref: "#/components/schemas/TranslationConfig"
            confirmation:
              type: object
              properties:
                title:
                  $ref: "#/components/schemas/TranslationConfig"
                body:
                  $ref: "#/components/schemas/TranslationConfig"
              required:
                - title
                - body
              additionalProperties: false
          required:
            - label
            - confirmation
          additionalProperties: false
      required:
        - verify
        - cancel
      additionalProperties: false
      description: Verification action configuration
    RequestCorrectionActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: REQUEST_CORRECTION
        correctionForm:
          type: object
          properties:
            label:
              description: Human readable description of the form
              $ref: "#/components/schemas/TranslationConfig"
            pages:
              type: array
              items:
                $ref: "#/components/schemas/PageConfig"
          required:
            - label
            - pages
          additionalProperties: false
          description: Configuration of the form used for system actions beyond
            declaration, supporting a wider range of page types.
      required:
        - label
        - flags
        - type
        - correctionForm
      additionalProperties: false
      description: Configuration for requesting a correction on a registered record.
    EditActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: EDIT
        dialogCopy:
          type: object
          properties:
            notify:
              description: Confirmation text for the notify with edits action
              $ref: "#/components/schemas/TranslationConfig"
            declare:
              description: Confirmation text for the declare with edits action
              $ref: "#/components/schemas/TranslationConfig"
            register:
              description: Confirmation text for the register with edits action
              $ref: "#/components/schemas/TranslationConfig"
          required:
            - notify
            - declare
            - register
          additionalProperties: false
      required:
        - label
        - flags
        - type
        - dialogCopy
      additionalProperties: false
      description: Configuration for editing a record before registration.
    ArchiveActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: ARCHIVE
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for archiving a record.
    CustomActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfig"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfig"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: CUSTOM
        customActionType:
          type: string
          description: Type identifier of the custom action.
        form:
          type: array
          items:
            $ref: "#/components/schemas/FieldConfig"
          description: Form configuration for the custom action. The form configured here
            will be used on the custom action confirmation modal.
        auditHistoryLabel:
          description: The label to show in audit history for this action. For example
            "Approved".
          $ref: "#/components/schemas/TranslationConfig"
      required:
        - label
        - flags
        - type
        - customActionType
        - form
        - auditHistoryLabel
      additionalProperties: false
      description: Configuration for a country-defined custom action. An event may
        include any number of these.
    DeclarationFormConfig:
      type: object
      properties:
        label:
          description: Human readable description of the form
          $ref: "#/components/schemas/TranslationConfig"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier for the page
              title:
                description: Header title of the page
                $ref: "#/components/schemas/TranslationConfig"
              requireCompletionToContinue:
                default: false
                description: If true, all required fields must be filled before continuing to
                  the next page
                type: boolean
              fields:
                type: array
                items:
                  $ref: "#/components/schemas/FieldConfig"
                description: Fields to be rendered on the page
              conditional:
                description: Page will be shown if condition is met. If conditional is not
                  defined, the page will be always shown.
                $ref: "#/components/schemas/Conditional"
              type:
                default: FORM
                type: string
                const: FORM
            required:
              - id
              - title
              - requireCompletionToContinue
              - fields
              - type
            additionalProperties: false
      required:
        - label
        - pages
      additionalProperties: false
      description: Configuration of the declaration form.
    AdvancedSearchConfig:
      type: object
      properties:
        title:
          description: Advanced search tab title
          $ref: "#/components/schemas/TranslationConfig"
        fields:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  config:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - fuzzy
                          - exact
                          - range
                          - within
                        description: Determines the search type of field. How to match value.
                      searchFields:
                        description: "

                          \      Defines multiple form
                          fields that should be searched when this field has a
                          value.

                          \      All specified fields
                          will be combined using OR logic.


                          \      Example: {
                          searchFields: ['mother.name', 'father.name',
                          'informant.name'] }

                          \      Will search all
                          fields and return a record if any of the fields match
                          the search value.    \ 

                          \      "
                        type: array
                        items:
                          type: string
                    required:
                      - type
                    additionalProperties: false
                  type:
                    description: "

                      \      Explicitly specify the field
                      type for searchFields.

                      \      This is required when
                      searchFields is defined, to show the correct control in
                      the UI.

                      \       \ 

                      \      Example: FieldType.NAME for
                      name fields, FieldType.TEXT for text fields,
                      FieldType.DATE for date fields, etc.

                      \      "
                    type: string
                    enum:
                      - NAME
                      - PHONE
                      - ID
                      - ADDRESS
                      - TEXT
                      - NUMBER
                      - NUMBER_WITH_UNIT
                      - TEXTAREA
                      - EMAIL
                      - DATE
                      - AGE
                      - DATE_RANGE
                      - SELECT_DATE_RANGE
                      - TIME
                      - IMAGE_VIEW
                      - PARAGRAPH
                      - HEADING
                      - PAGE_HEADER
                      - RADIO_GROUP
                      - FIELD_GROUP
                      - FILE
                      - FILE_WITH_OPTIONS
                      - BULLET_LIST
                      - CHECKBOX
                      - SELECT
                      - COUNTRY
                      - LOCATION
                      - DIVIDER
                      - ADMINISTRATIVE_AREA
                      - FACILITY
                      - OFFICE
                      - SIGNATURE
                      - DATA
                      - BUTTON
                      - AUTOCOMPLETE
                      - SEARCH
                      - ALPHA_PRINT_BUTTON
                      - HTTP
                      - LINK_BUTTON
                      - VERIFICATION_STATUS
                      - QUERY_PARAM_READER
                      - QR_READER
                      - ID_READER
                      - LOADER
                      - ALPHA_HIDDEN
                      - USER_ROLE
                      - CUSTOM
                  label:
                    description: "

                      \      Explicitly specify the label
                      for searchFields.

                      \      This is required when
                      searchFields is defined.           \ 

                      \      "
                    $ref: "#/components/schemas/TranslationConfig"
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                          description: The value of the option
                        label:
                          anyOf:
                            - type: string
                            - $ref: "#/components/schemas/TranslationConfig"
                          description: The label of the option
                        conditionals:
                          default: []
                          type: array
                          items:
                            $ref: "#/components/schemas/ActionConditional"
                      required:
                        - value
                        - label
                      additionalProperties: false
                  searchCriteriaLabelPrefix:
                    description: "

                      \    This property determines
                      whether to add a prefix (such as \"Child\" or
                      \"Applicant\") before the field label

                      \    when rendering search parameter
                      labels — for example, in the search results page to
                      indicate which fields were used in the search.


                      \    For example, a field config
                      like { id: \"child.name.firstname\", label: {
                      defaultMessage: \"First Name(s)\" } } would render as
                      \"First Name(s)\" by default.


                      \    A field config like { id:
                      \"mother.firstname\", label: { defaultMessage: \"First
                      Name(s)\" } } would also render as \"First Name(s)\" by
                      default.


                      \    So, if both
                      child.name.firstname and mother.firstname are used in a
                      search, the resulting search criteria labels would be
                      \"First Name(s)\", \"First Name(s)\",

                      \    which is ambiguous.


                      \    Now, if we treat the field ID
                      prefix as a label (e.g., \"applicant.firstname\" →
                      \"Applicant\"), and the field label is already

                      \    descriptive — like { id:
                      \"applicant.firstname\", label: { defaultMessage:
                      \"Applicant's First Name\" } } — then the resulting

                      \    label would be \"Applicant
                      Applicant's First Name\", which is redundant and awkward.


                      \    By setting
                      searchCriteriaLabelPrefix to a translation config object,
                      we can explicitly define the desired prefix

                      \    in the country-config >
                      event.advancedSearch configuration. For example:
                      field(\"child.dob\", { searchCriteriaLabelPrefix:
                      TranslationConfig }).

                      \    "
                    $ref: "#/components/schemas/TranslationConfig"
                  conditionals:
                    description: "

                      \       In advanced search, we
                      sometimes need to override the default field visibility
                      conditionals.


                      \       For example, Informant
                      fields in the declaration form may have conditional logic

                      \       that hides them based on
                      other field values. Since the advanced search form reuses

                      \       the declaration form config,
                      those same conditionals would apply by default.


                      \       However, in advanced search
                      we often want to make all Informant fields searchable,

                      \       regardless of their original
                      visibility logic. To do this, we explicitly set their

                      \       'conditionals' to an empty
                      array ('[]') in the search config. This ensures they

                      \       are always rendered in the
                      advanced search form.

                      \      "
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  validations:
                    description: Option for overriding the field validations specifically for
                      advanced search form.
                    type: array
                    items:
                      $ref: "#/components/schemas/ValidationConfig"
                  allowedLocations:
                    description: Override the allowedLocations for a location field in advanced
                      search. Use this when the declaration form's
                      allowedLocations references a scope (e.g. record.create)
                      that search-only users don't have — specify record.search
                      scope instead.
                    type: object
                    properties:
                      $jurisdiction:
                        anyOf:
                          - type: string
                            enum:
                              - administrativeArea
                              - location
                              - all
                            description: Filters based on user jurisdiction relative to their office
                              location in hierarchy.
                          - type: object
                            properties:
                              $scope:
                                type: string
                                enum:
                                  - organisation.read-locations
                                  - user.read
                                  - user.create
                                  - user.edit
                                  - user.search
                                  - record.search
                                  - record.create
                                  - record.read
                                  - record.declare
                                  - record.notify
                                  - record.edit
                                  - record.reject
                                  - record.archive
                                  - record.review-duplicates
                                  - record.register
                                  - record.print-certified-copies
                                  - record.request-correction
                                  - record.correct
                                  - record.unassign-others
                                  - record.custom-action
                                  - bypassratelimit
                                  - record.reindex
                                  - user.data-seeding
                                  - integration.create
                                  - record.import
                                  - config.update-all
                                  - attachment.upload
                                  - profile.electronic-signature
                                  - user.read-only-my-audit
                                  - performance.read
                                  - performance.read-dashboards
                                  - performance.vital-statistics-export
                                  - record.confirm-registration
                                  - record.reject-registration
                                  - workqueue
                                  - dashboard.view
                              $option:
                                type: string
                                enum:
                                  - event
                                  - placeOfEvent
                                  - declaredIn
                                  - declaredBy
                                  - registeredIn
                                  - registeredBy
                                  - accessLevel
                                  - role
                                  - ids
                            required:
                              - $scope
                              - $option
                            additionalProperties: false
                    required:
                      - $jurisdiction
                    additionalProperties: false
                  fieldId:
                    type: string
                  fieldType:
                    type: string
                    const: field
                required:
                  - config
                  - fieldId
                  - fieldType
                additionalProperties: false
              - type: object
                properties:
                  config:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - fuzzy
                          - exact
                          - range
                          - within
                        description: Determines the search type of field. How to match value.
                      searchFields:
                        description: "

                          \      Defines multiple form
                          fields that should be searched when this field has a
                          value.

                          \      All specified fields
                          will be combined using OR logic.


                          \      Example: {
                          searchFields: ['mother.name', 'father.name',
                          'informant.name'] }

                          \      Will search all
                          fields and return a record if any of the fields match
                          the search value.    \ 

                          \      "
                        type: array
                        items:
                          type: string
                    required:
                      - type
                    additionalProperties: false
                  type:
                    description: "

                      \      Explicitly specify the field
                      type for searchFields.

                      \      This is required when
                      searchFields is defined, to show the correct control in
                      the UI.

                      \       \ 

                      \      Example: FieldType.NAME for
                      name fields, FieldType.TEXT for text fields,
                      FieldType.DATE for date fields, etc.

                      \      "
                    type: string
                    enum:
                      - NAME
                      - PHONE
                      - ID
                      - ADDRESS
                      - TEXT
                      - NUMBER
                      - NUMBER_WITH_UNIT
                      - TEXTAREA
                      - EMAIL
                      - DATE
                      - AGE
                      - DATE_RANGE
                      - SELECT_DATE_RANGE
                      - TIME
                      - IMAGE_VIEW
                      - PARAGRAPH
                      - HEADING
                      - PAGE_HEADER
                      - RADIO_GROUP
                      - FIELD_GROUP
                      - FILE
                      - FILE_WITH_OPTIONS
                      - BULLET_LIST
                      - CHECKBOX
                      - SELECT
                      - COUNTRY
                      - LOCATION
                      - DIVIDER
                      - ADMINISTRATIVE_AREA
                      - FACILITY
                      - OFFICE
                      - SIGNATURE
                      - DATA
                      - BUTTON
                      - AUTOCOMPLETE
                      - SEARCH
                      - ALPHA_PRINT_BUTTON
                      - HTTP
                      - LINK_BUTTON
                      - VERIFICATION_STATUS
                      - QUERY_PARAM_READER
                      - QR_READER
                      - ID_READER
                      - LOADER
                      - ALPHA_HIDDEN
                      - USER_ROLE
                      - CUSTOM
                  label:
                    description: "

                      \      Explicitly specify the label
                      for searchFields.

                      \      This is required when
                      searchFields is defined.           \ 

                      \      "
                    $ref: "#/components/schemas/TranslationConfig"
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                          description: The value of the option
                        label:
                          anyOf:
                            - type: string
                            - $ref: "#/components/schemas/TranslationConfig"
                          description: The label of the option
                        conditionals:
                          default: []
                          type: array
                          items:
                            $ref: "#/components/schemas/ActionConditional"
                      required:
                        - value
                        - label
                      additionalProperties: false
                  searchCriteriaLabelPrefix:
                    description: "

                      \    This property determines
                      whether to add a prefix (such as \"Child\" or
                      \"Applicant\") before the field label

                      \    when rendering search parameter
                      labels — for example, in the search results page to
                      indicate which fields were used in the search.


                      \    For example, a field config
                      like { id: \"child.name.firstname\", label: {
                      defaultMessage: \"First Name(s)\" } } would render as
                      \"First Name(s)\" by default.


                      \    A field config like { id:
                      \"mother.firstname\", label: { defaultMessage: \"First
                      Name(s)\" } } would also render as \"First Name(s)\" by
                      default.


                      \    So, if both
                      child.name.firstname and mother.firstname are used in a
                      search, the resulting search criteria labels would be
                      \"First Name(s)\", \"First Name(s)\",

                      \    which is ambiguous.


                      \    Now, if we treat the field ID
                      prefix as a label (e.g., \"applicant.firstname\" →
                      \"Applicant\"), and the field label is already

                      \    descriptive — like { id:
                      \"applicant.firstname\", label: { defaultMessage:
                      \"Applicant's First Name\" } } — then the resulting

                      \    label would be \"Applicant
                      Applicant's First Name\", which is redundant and awkward.


                      \    By setting
                      searchCriteriaLabelPrefix to a translation config object,
                      we can explicitly define the desired prefix

                      \    in the country-config >
                      event.advancedSearch configuration. For example:
                      field(\"child.dob\", { searchCriteriaLabelPrefix:
                      TranslationConfig }).

                      \    "
                    $ref: "#/components/schemas/TranslationConfig"
                  conditionals:
                    description: "

                      \       In advanced search, we
                      sometimes need to override the default field visibility
                      conditionals.


                      \       For example, Informant
                      fields in the declaration form may have conditional logic

                      \       that hides them based on
                      other field values. Since the advanced search form reuses

                      \       the declaration form config,
                      those same conditionals would apply by default.


                      \       However, in advanced search
                      we often want to make all Informant fields searchable,

                      \       regardless of their original
                      visibility logic. To do this, we explicitly set their

                      \       'conditionals' to an empty
                      array ('[]') in the search config. This ensures they

                      \       are always rendered in the
                      advanced search form.

                      \      "
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  validations:
                    description: Option for overriding the field validations specifically for
                      advanced search form.
                    type: array
                    items:
                      $ref: "#/components/schemas/ValidationConfig"
                  allowedLocations:
                    description: Override the allowedLocations for a location field in advanced
                      search. Use this when the declaration form's
                      allowedLocations references a scope (e.g. record.create)
                      that search-only users don't have — specify record.search
                      scope instead.
                    type: object
                    properties:
                      $jurisdiction:
                        anyOf:
                          - type: string
                            enum:
                              - administrativeArea
                              - location
                              - all
                            description: Filters based on user jurisdiction relative to their office
                              location in hierarchy.
                          - type: object
                            properties:
                              $scope:
                                type: string
                                enum:
                                  - organisation.read-locations
                                  - user.read
                                  - user.create
                                  - user.edit
                                  - user.search
                                  - record.search
                                  - record.create
                                  - record.read
                                  - record.declare
                                  - record.notify
                                  - record.edit
                                  - record.reject
                                  - record.archive
                                  - record.review-duplicates
                                  - record.register
                                  - record.print-certified-copies
                                  - record.request-correction
                                  - record.correct
                                  - record.unassign-others
                                  - record.custom-action
                                  - bypassratelimit
                                  - record.reindex
                                  - user.data-seeding
                                  - integration.create
                                  - record.import
                                  - config.update-all
                                  - attachment.upload
                                  - profile.electronic-signature
                                  - user.read-only-my-audit
                                  - performance.read
                                  - performance.read-dashboards
                                  - performance.vital-statistics-export
                                  - record.confirm-registration
                                  - record.reject-registration
                                  - workqueue
                                  - dashboard.view
                              $option:
                                type: string
                                enum:
                                  - event
                                  - placeOfEvent
                                  - declaredIn
                                  - declaredBy
                                  - registeredIn
                                  - registeredBy
                                  - accessLevel
                                  - role
                                  - ids
                            required:
                              - $scope
                              - $option
                            additionalProperties: false
                    required:
                      - $jurisdiction
                    additionalProperties: false
                  fieldId:
                    type: string
                    enum:
                      - event.trackingId
                      - event.status
                      - event.legalStatuses.REGISTERED.acceptedAt
                      - event.legalStatuses.REGISTERED.createdAtLocation
                      - event.legalStatuses.REGISTERED.registrationNumber
                      - event.updatedAt
                  fieldType:
                    type: string
                    const: event
                required:
                  - config
                  - fieldId
                  - fieldType
                additionalProperties: false
            type: object
          description: Advanced search fields within the tab.
      required:
        - title
        - fields
      additionalProperties: false
      description: Configuration of one advanced search tab. Each tab has a title and
        a list of searchable fields — either declaration fields (via `field()`)
        or event metadata (via `event()`).
    FlagConfig:
      type: object
      properties:
        id:
          type: string
          description: Custom flag identifier defined by the country config.
        requiresAction:
          type: boolean
          description: Indicates if this flag expects an action to be performed to be
            cleared.
        label:
          description: Human readable label of the flag.
          $ref: "#/components/schemas/TranslationConfig"
      required:
        - id
        - requiresAction
        - label
      additionalProperties: false
      description: Configuration for a custom flag that can be added to or removed
        from records by event actions.
    EventDocumentOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the event.
        type:
          type: string
          description: Type of the event (e.g. birth, death, marriage).
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the event was created.
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp of the last update, excluding changes from actions.
        actions:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/ActionDocumentOutput"
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: Unique identifier of the action.
                  transactionId:
                    type: string
                    description: Unique identifier of the transaction.
                  createdByUserType:
                    type: string
                    enum:
                      - user
                      - system
                    description: Indicates whether the action was created by a human-user or by a
                      system-user.
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: Timestamp indicating when the action was created.
                  createdBy:
                    type: string
                    description: Identifier of the user who created the action.
                  createdByRole:
                    description: Role of the user who created the action.
                    type: string
                  createdBySignature:
                    description: Reference to the signature of the user who created the action.
                    anyOf:
                      - type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      - type: "null"
                  createdAtLocation:
                    description: Reference to the location of the user who created the action.
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  status:
                    type: string
                    const: Rejected
                  originalActionId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                    description: Reference to the original action asynchronously accepted or
                      rejected by a third-party integration.
                  type:
                    type: string
                    enum:
                      - NOTIFY
                      - DECLARE
                      - EDIT
                      - REGISTER
                      - REJECT
                      - ARCHIVE
                      - PRINT_CERTIFICATE
                      - REQUEST_CORRECTION
                      - APPROVE_CORRECTION
                      - REJECT_CORRECTION
                      - CUSTOM
                required:
                  - id
                  - transactionId
                  - createdByUserType
                  - createdAt
                  - createdBy
                  - status
                  - type
                additionalProperties: false
          description: Ordered list of actions associated with the event.
        trackingId:
          type: string
          description: System-generated tracking identifier used to look up the event.
      required:
        - id
        - type
        - createdAt
        - updatedAt
        - actions
        - trackingId
      additionalProperties: false
    ActionDocumentOutput:
      oneOf:
        - $ref: "#/components/schemas/CreatedActionOutput"
        - $ref: "#/components/schemas/RejectActionOutput"
        - $ref: "#/components/schemas/DuplicateDetectedActionOutput"
        - $ref: "#/components/schemas/MarkNotDuplicateActionOutput"
        - $ref: "#/components/schemas/MarkAsDuplicateActionOutput"
        - $ref: "#/components/schemas/ArchiveActionOutput"
        - $ref: "#/components/schemas/NotifiedActionOutput"
        - $ref: "#/components/schemas/RegisterActionOutput"
        - $ref: "#/components/schemas/DeclareActionOutput"
        - $ref: "#/components/schemas/AssignedActionOutput"
        - $ref: "#/components/schemas/RequestedCorrectionActionOutput"
        - $ref: "#/components/schemas/ApprovedCorrectionActionOutput"
        - $ref: "#/components/schemas/RejectedCorrectionActionOutput"
        - $ref: "#/components/schemas/UnassignedActionOutput"
        - $ref: "#/components/schemas/PrintCertificateActionOutput"
        - $ref: "#/components/schemas/ReadActionOutput"
        - $ref: "#/components/schemas/EditActionOutput"
        - $ref: "#/components/schemas/CustomActionOutput"
      type: object
      discriminator:
        propertyName: type
        mapping:
          CREATE: "#/components/schemas/CreatedActionOutput"
          REJECT: "#/components/schemas/RejectActionOutput"
          DUPLICATE_DETECTED: "#/components/schemas/DuplicateDetectedActionOutput"
          MARK_AS_NOT_DUPLICATE: "#/components/schemas/MarkNotDuplicateActionOutput"
          MARK_AS_DUPLICATE: "#/components/schemas/MarkAsDuplicateActionOutput"
          ARCHIVE: "#/components/schemas/ArchiveActionOutput"
          NOTIFY: "#/components/schemas/NotifiedActionOutput"
          REGISTER: "#/components/schemas/RegisterActionOutput"
          DECLARE: "#/components/schemas/DeclareActionOutput"
          ASSIGN: "#/components/schemas/AssignedActionOutput"
          REQUEST_CORRECTION: "#/components/schemas/RequestedCorrectionActionOutput"
          APPROVE_CORRECTION: "#/components/schemas/ApprovedCorrectionActionOutput"
          REJECT_CORRECTION: "#/components/schemas/RejectedCorrectionActionOutput"
          UNASSIGN: "#/components/schemas/UnassignedActionOutput"
          PRINT_CERTIFICATE: "#/components/schemas/PrintCertificateActionOutput"
          READ: "#/components/schemas/ReadActionOutput"
          EDIT: "#/components/schemas/EditActionOutput"
          CUSTOM: "#/components/schemas/CustomActionOutput"
    CreatedActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CREATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    RejectActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    DuplicateDetectedActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DUPLICATE_DETECTED
        content:
          type: object
          properties:
            duplicates:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  trackingId:
                    type: string
                required:
                  - id
                  - trackingId
                additionalProperties: false
          required:
            - duplicates
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    MarkNotDuplicateActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_NOT_DUPLICATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    MarkAsDuplicateActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_DUPLICATE
        content:
          type: object
          properties:
            duplicateOf:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - duplicateOf
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ArchiveActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ARCHIVE
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    NotifiedActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: NOTIFY
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    RegisterActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REGISTER
        registrationNumber:
          description: Registration number of the event. Always present for accepted
            registrations.
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    DeclareActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DECLARE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    AssignedActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ASSIGN
        assignedTo:
          type: string
          description: Identifier of the user to whom the action is assigned.
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - assignedTo
      additionalProperties: false
    RequestedCorrectionActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REQUEST_CORRECTION
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ApprovedCorrectionActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: APPROVE_CORRECTION
        requestId:
          type: string
        content:
          type: object
          properties:
            immediateCorrection:
              type: boolean
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
      additionalProperties: false
    RejectedCorrectionActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT_CORRECTION
        requestId:
          type: string
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
        - content
      additionalProperties: false
    UnassignedActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: UNASSIGN
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    PrintCertificateActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: PRINT_CERTIFICATE
        content:
          anyOf:
            - type: object
              properties:
                templateId:
                  type: string
              additionalProperties: false
            - type: "null"
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ReadActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: READ
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    EditActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: EDIT
        content:
          type: object
          properties:
            comment:
              type: string
              description: Comment for the edit action.
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    CustomActionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CUSTOM
        customActionType:
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - customActionType
      additionalProperties: false

