diff --git a/src/openflexure_microscope_server/ui.py b/src/openflexure_microscope_server/ui.py
index ff11ea68..4b38a891 100644
--- a/src/openflexure_microscope_server/ui.py
+++ b/src/openflexure_microscope_server/ui.py
@@ -83,11 +83,11 @@ class PropertyControl(BaseModel):
read_back_delay: int = 1000
"""The delay in ms before reading back the property."""
- options: Optional[list[str]] = None
- """A list of options to pass to the UI for a dropdown.
+ options: Optional[dict[str, str | int | float | bool]] = None
+ """A mapping of UI display name to value use for creating a dropdown.
- These options aren't validated in the UI in any way, and invalid
- settings will only be rejected when selected.
+ These options aren't validated here in any way. Any invalid values will be rejected
+ when selected.
"""
diff --git a/webapp/src/components/labThingsComponents/inputFromSchema.vue b/webapp/src/components/labThingsComponents/inputFromSchema.vue
index e0b265cc..78b0b7c7 100644
--- a/webapp/src/components/labThingsComponents/inputFromSchema.vue
+++ b/webapp/src/components/labThingsComponents/inputFromSchema.vue
@@ -5,11 +5,11 @@