key=value
) out of all the tags to add onto the newly created point.
* Note that the icon in the UI will be chosen automatically based on the tags provided here.
*
* question: What tag should be added to the new object?
* type: simple_tag
* typeHelper: uploadableOnly
*/
tags: string[]
/**
* An extra explanation of what the feature is, if it is not immediately clear from the title alone.
*
* The _first sentence_ of the description is shown on the button of the `add` menu.
* The full description is shown in the confirmation dialog.
*
* (The first sentence is until the first '.'-character in the description)
*
* question: How would you describe this feature?
* ifunset: No extra description is given. This can be used to further explain the preset
*/
description?: Translatable
/**
* The URL of an example image which shows a real-life example of what such a feature might look like.
*
* Type: image
* question: What is the URL of an image showing such a feature?
*/
exampleImages?: string[]
/**
* question: Should the created point be snapped to a line layer?
*
* If specified, these layers will be shown in the precise location picker and the new point will be snapped towards it.
* For example, this can be used to snap against `walls_and_buildings` (e.g. to attach a defibrillator, an entrance, an artwork, ... to the wall)
* or to snap an obstacle (such as a bollard) to the `cycleways_and_roads`.
*
* suggestions: return Array.from(layers.keys()).map(key => ({if: "value="+key, then: key+" - "+layers.get(key).description}))
*/
snapToLayer?: string[]
/**
* question: What is the maximum distance in the location-input that a point can be moved to be snapped to a way?
*
* inline: a point is snapped if the location input is at most {value}m away from an object
*
* If specified, a new point will only be snapped if it is within this range.
* If further away, it'll be placed in the center of the location input
* Distance in meter
*
* ifunset: Do not snap to a layer
*/
maxSnapDistance?: number
}[]
/**
* question: Edit this way this attributed is displayed or queried
*
* A tag rendering is a block that either shows the known value or asks a question.
*
* Refer to the class `TagRenderingConfigJson` to see the possibilities.
*
* Note that we can also use a string here - where the string refers to a tag rendering defined in `assets/questions/questions.json`,
* where a few very general questions are defined e.g. website, phone number, ...
* Furthermore, _all_ the questions of another layer can be reused with `otherlayer.*`
* If you need only a single of the tagRenderings, use `otherlayer.tagrenderingId`
* If one or more questions have a 'group' or 'label' set, select all the entries with the corresponding group or label with `otherlayer.*group`
* Remark: if a tagRendering is 'lent' from another layer, the 'source'-tags are copied and added as condition.
* If they are not wanted, remove them with an override
*
* A special value is 'questions', which indicates the location of the questions box. If not specified, it'll be appended to the bottom of the featureInfobox.
*
* At last, one can define a group of renderings where parts of all strings will be replaced by multiple other strings.
* This is mainly create questions for a 'left' and a 'right' side of the road.
* These will be grouped and questions will be asked together
*
* type: tagrendering[]
* group: tagrenderings
*
*/
tagRenderings?: (
| string
| {
id?: string
builtin: string | string[]
override: Partial