description: "Documentation entry for a property this Component will add to its Thang which other Components might
wanttoalsouse."
"default":
name: "foo"
type: "object"
description: 'The `foo` property can satisfy all the #{spriteName}\'s foobar needs. Use it wisely.'
required: ['name','type','description']
},
name: {type: 'string',title: "Name",description: "Name of the property."}
# not actual JS types, just whatever they describe...
type: c.shortString(title: "Type",description: "Intended type of the property.")
description: {title: "Description",type: 'string',description: "Description of the property.",format: 'markdown',maxLength: 1000}
args: c.array{title: "Arguments",description: "If this property has type 'function', then provide documentation for any function arguments."},c.FunctionArgumentSchema
owner: {title: "Owner",type: 'string',description: 'Owner of the property, like "this" or "Math".'}
example: {title: "Example",type: 'string',description: 'An optional example code block.',format: 'javascript'}
returns: c.object{
title: "Return Value"
description: 'Optional documentation of any return value.'
required: ['type']
default: {type: 'null'}
},
type: c.shortString(title: "Type",description: "Type of the return value")
description: "The short name of the System this Component belongs to, like \"ai\"."
type: "string"
"enum":systems
"default":"ai"
description:
title: "Description"
description: "A short explanation of what this Component does."
type: "string"
maxLength: 2000
"default":"This Component makes the Thang attack itself."
language:
type: "string"
title: "Language"
description: "Which programming language this Component is written in."
"enum":["coffeescript"]
code:
title: "Code"
description: "The code for this Component, as a CoffeeScript class. TODO: add link to documentation for
howtowritethese."
"default":attackSelfCode
type: "string"
format: "coffee"
js:
title: "JavaScript"
description: "The transpiled JavaScript code for this Component"
type: "string"
format: "hidden"
dependencies: c.array{title: "Dependencies",description: "An array of Components upon which this Component depends.","default":[],uniqueItems: true},DependencySchema
propertyDocumentation: c.array{title: "Property Documentation",description: "An array of documentation entries for each notable property this Component will add to its Thang which other Components might want to also use.","default":[]},PropertyDocumentationSchema
configSchema: _.extendmetaschema,{title: "Configuration Schema",description: "A schema for validating the arguments that can be passed to this Component as configuration.",default: {type: 'object',additionalProperties: false}}
official:
type: "boolean"
title: "Official"
description: "Whether this is an official CodeCombat Component."