UnitField objects define simple components for data collection.

type*stringOne of text, boolean, number, datetime, or category, select, time_range.
field_id*stringA unique identifier for the field, which should not change among tasks within a project.
title*stringField title to be displayed to taskers. This should be short and singular. This may change among tasks within a project. Must not be an empty string.
descriptionstringundefinedA brief description about what the response should be. This may change among tasks within a project.
hintstringundefinedLonger explanation of why the field exists and how it should be used. Renders as a tooltip.
requiredbooleanfalseDetermines whether or not a response for this field is required.
min_responses_requiredinteger1The minimum number of separate annotations allowed for this field. Must be larger than 0.
max_responses_requiredinteger1The maximum number of separate annotations allowed for this field. Must be larger than or equal to min_responses_required, with an upper bound of 100.
conditionsarray_objectundefinedA set of conditions which must be satisfied for this field to be shown.
Additional FieldsSee the TextField, BooleanField, NumberField, DatetimeField, and CategoryField sections.

Beta: Conditional Fields

Sometimes a field should only be presented if specific choices are selected for other fields. In these cases, you can specify the conditions — the dependent questions and corresponding sets of choices.

The conditions property should have the following structure: an array of objects, which define one set of conditions allowing the field to be shown. The operators AND ({ }), OR ([ ]), and NOT (not) are supported, so you could specify an arbitrary set of fields and choices. Each set may contain objects or arrays with the following:

  • Key: the field_id of the dependent field
  • Value: an object specifying the desired choices for the dependent field.

For example conditions, please check out the code on the right.

Conditions currently only work with dependent fields of type CategoryField. It is valid syntax on other fields, but may raise errors or undefined behavior.

// Example of UnitField with conditions
  type: "category",
  field_id: "occlusion",
  title: "Is there occlusion in the image?",
  choices: [{label: 'None', value: '0' },
            {label: 'A little', value: '1'},
            {label: 'A lot', value: '2'}],
  conditions: [{}],
  type: "category",
  field_id: "occlusion_detail",
  title: "What is the cause of the occlusion?",
  choices: [{label: 'Rain', value: 'rain'},
            {label: 'Shadow', value: 'shadow'}],
  conditions: [{
    occlusion: ['1', '2'], // show if 1 or 2 are selected
    // equivalently {not: [[], ['0']}
    // equivalently [{not: []}, {not: ['0']}]
    // equivalently [['1'],['2']]
  type: "text",
  field_id: "a_lot_of_shadow",
  title: "Please describe why there is so much shadow.",
  conditions: [{
    // show if 2 and shadow are selected in their respective fields
    occlusion: ['2'], 
    occlusion_detail: ['shadow'],