{
    "@context": {
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "bdd": "https://secorolab.github.io/metamodels/acceptance-criteria/bdd#",

        "UserStory": { "@id": "bdd:UserStory" },
        "has-criteria": { "@id":"bdd:has-criteria", "@type": "@id" },

        "Scenario": { "@id": "bdd:Scenario" },
        "of-scenario": { "@id": "bdd:of-scenario", "@type": "@id" },
        "given": { "@id": "bdd:given", "@type": "@id" },
        "when": { "@id": "bdd:when", "@type": "@id" },
        "then": { "@id": "bdd:then", "@type": "@id" },

        "Given": { "@id": "bdd:Given" },
        "When": { "@id": "bdd:When" },
        "Then": { "@id": "bdd:Then" },

        "WhenEvent": { "@id": "bdd:WhenEvent" },
        "WhenBehaviour": { "@id": "bdd:WhenBehaviour" },

        "ScenarioVariable": { "@id": "bdd:ScenarioVariable" },
        "variable": { "@id": "bdd:ref-variable", "@type": "@id" },
        "variable-list": { "@id": "bdd:variable-list", "@container": "@list", "@type": "@id" },

        "TaskVariation": { "@id": "bdd:TaskVariation" },
        "has-variation": { "@id": "bdd:has-variation", "@type": "@id" },

        "TableVariation": { "@id": "bdd:TableVariation" },
        "rows": { "@id": "bdd:rows", "type": "@id", "@container": "@list" },

        "Set": { "@id": "bdd:Set" },
        "ConstantSet": { "@id": "bdd:Set" },
        "elements": { "@id": "bdd:elements", "@container": "@set", "@type": "@id"  },

        "CartesianProductVariation": { "@id": "bdd:CartesianProductVariation" },
        "of-sets": { "@id": "bdd:of-sets", "type": "@id", "@container": "@list" },

        "Combination": { "@id": "bdd:Combination" },
        "Permutation": { "@id": "bdd:Permutation" },
        "repetition": { "@id": "bdd:repetition-allowed", "@type": "xsd:boolean" },
        "length": { "@id": "bdd:length", "@type": "xsd:positiveInteger" },
        "from": { "@id": "bdd:from", "@type": "@id" },

        "ForAll": { "@id": "bdd:ForAll" },
        "ThereExists": { "@id": "bdd:ThereExists" },
        "in-set": { "@id": "bdd:in-set", "@type": "@id" },

        "FluentClause": { "@id": "bdd:FluentClause" },
        "clause-of": { "@id": "bdd:clause-of", "@type": "@id" },
        "of-clause": { "@id": "bdd:of-clause", "@type": "@id" },
        "has-clause": {
            "@id": "bdd:has-clause", "@container": "@list", "@type": "@id"
        },

        "LocatedAtPredicate": { "@id": "bdd:LocatedAtPredicate" },
        "IsNearPredicate": { "@id": "bdd:IsNearPredicate" },
        "IsHeldPredicate": { "@id": "bdd:IsHeldPredicate" },
        "MoveSafelyPredicate": { "@id": "bdd:MoveSafelyPredicate" },
        "SortedIntoPredicate": { "@id": "bdd:SortedIntoPredicate" },

        "StringTemplatePredicate": { "@id": "bdd:StringTemplatePredicate" },
        "tmpl-str": { "@id": "bdd:template-string", "@type": "xsd:string" },
        "arg-names": { "@id": "bdd:argument-names", "@type": "xsd:string", "@container": "@list" },
        "arg-variables": { "@id": "bdd:argument-variables", "@type": "@id", "@container": "@list" },

        "HasConfigPredicate": { "@id": "bdd:HasConfigPredicate" },
        "config-target": { "@id": "bdd:config-target", "@type": "@id" },
        "config-name": { "@id": "bdd:config-name", "@type": "xsd:string" },
        "config-var": { "@id": "bdd:config-variable", "@type": "@id" },

        "ref-workspace": { "@id": "bdd:ref-workspace", "@type": "@id" },
        "ref-object": { "@id": "bdd:ref-object", "@type": "@id" },
        "ref-agent": { "@id": "bdd:ref-agent", "@type": "@id" },

        "ScenarioTemplate": { "@id": "bdd:ScenarioTemplate" },
        "of-template": { "@id": "bdd:of-template", "@type": "@id" },

        "ScenarioVariant": { "@id": "bdd:ScenarioVariant" },
        "of-variant": { "@id": "bdd:of-variant", "@type": "@id" },

        "Scene": { "@id": "bdd:Scene" },
        "of-scene": { "@id": "bdd:of-scene", "@type": "@id" },
        "has-scene": { "@id": "bdd:has-scene", "@type": "@id" },

        "SceneHasObjects": { "@id": "bdd:SceneHasObjects" },
        "SceneHasWorkspaces": { "@id": "bdd:SceneHasWorkspaces" },
        "SceneHasAgents": { "@id": "bdd:SceneHasAgents" },

        "ScenarioExecution": { "@id": "bdd:ScenarioExecution" },
        "SimulatedExecution": { "@id": "bdd:SimulatedExecution" },

        "StringEntityMapper": { "@id": "bdd:StringEntityMapper" },
        "StringEntityMapping": { "@id": "bdd:StringEntityMapping" },
        "has-string-entity-mapping": { "@id": "bdd:has-string-entity-mapping", "@type": "@id" },
        "string-value": { "@id": "bdd:string-value", "@type": "xsd:string" },
        "mapped-entity": { "@id": "bdd:mapped-entity", "@type": "@id" },

        "BehaviourImplementation": { "@id": "bdd:BehaviourImplementation" },
        "has-behaviour-impl": { "@id": "bdd:has-behaviour-implementation", "@type": "@id" }
    }
}
