Status: IN
FTL2 module results can be dicts, lists (multi-host), or objects with `.output`/`.success` attributes. Production apps use a `_result_dict()` helper to normalize these into plain dicts for reliable field access.
Source: repo:ftl2-servercraft/ftl2_servercraft/scripts/neoforge.py
def _result_dict(result) -> dict:
if isinstance(result, dict):
return result
if isinstance(result, list) and result:
return _result_dict(result[0])
if hasattr(result, "output"):
return _result_dict(result.output)
return {}
def _failed(result) -> bool:
if hasattr(result, "success"):
return not result.success
d = _result_dict(result)
return d.get("failed", False) or d.get("rc", 0) != 0