GCC Build OSv0
/api

LegalEntityLegalEntity

retention: reference

An incorporated entity in the tenant's group: parent, subsidiary, or the GCC entity itself. Captures incorporation, headcount projections, and autonomy posture relevant to the transformation.

RACI requirements

decision_maker
n/a
approver
n/a
reviewer
n/a
contributor
n/a
informed
optional

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gcc.bootminds.com/ontology/node-types/legal_entity.json",
  "title": "LegalEntity",
  "description": "An incorporated entity in the tenant's group: parent, subsidiary, or the GCC entity itself. Captures incorporation, headcount projections, and autonomy posture relevant to the transformation.",
  "type": "object",
  "x-node-type": "LegalEntity",
  "x-lifecycle-state-machine": null,
  "x-raci-requirements": {
    "decision_maker": "n/a",
    "approver": "n/a",
    "reviewer": "n/a",
    "contributor": "n/a",
    "informed": "optional"
  },
  "x-retention-class": "reference",
  "required": [
    "node_id",
    "node_type",
    "tenant_id",
    "attributes",
    "state",
    "created_at",
    "created_by"
  ],
  "properties": {
    "node_id": {
      "type": "string",
      "format": "uuid"
    },
    "node_type": {
      "const": "LegalEntity"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "active",
        "in_incorporation",
        "dormant",
        "dissolved"
      ],
      "description": "Coarse legal-entity state. No formal lifecycle state machine."
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "legal_name",
        "country_of_incorporation",
        "business_profile",
        "autonomy_status",
        "sites"
      ],
      "properties": {
        "legal_name": {
          "type": "string",
          "minLength": 1,
          "description": "Legally registered name of the entity."
        },
        "country_of_incorporation": {
          "type": "string",
          "minLength": 2,
          "description": "ISO 3166-1 alpha-2 country code preferred (e.g., 'SA', 'AE', 'IN'). Free-text in Phase 0; promote to enum later."
        },
        "parent_holding_ref": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid",
          "description": "Reference to the parent LegalEntity node. Null for top-of-group entities."
        },
        "business_profile": {
          "type": "string",
          "minLength": 1,
          "description": "Short description of the entity's business activity within the group."
        },
        "fte_count_y1": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0,
          "description": "Projected full-time headcount at end of year 1 of the GCC build. Nullable until planning completes."
        },
        "fte_count_y3": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0,
          "description": "Projected full-time headcount at end of year 3 of the GCC build. Nullable until planning completes."
        },
        "autonomy_status": {
          "type": "string",
          "enum": [
            "Autonomous",
            "CentralSupported",
            "GroupHQ",
            "MigratingIntoGCC",
            "Federated",
            "OutOfScope"
          ],
          "description": "Posture of this entity relative to the GCC build."
        },
        "sites": {
          "type": "array",
          "description": "Physical site identifiers (city / office labels) associated with the entity.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "notes": {
          "type": "string",
          "description": "Free-text notes captured during discovery."
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "type": "string",
      "format": "uuid"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}