async def METHOD_NAME(self, **params: Any) -> Dict[str, Any]:
    # solve parameterless
    for param in self.parameterless:
        await param._solve(**params)
    # solve param values
    values = await asyncio.gather(
        *(self._solve_field(field, params) for field in self.params)
    )
    return {field.name: value for field, value in zip(self.params, values)}